Sempre que estou editando um script de shell no emacs e digitando três divisas para redirecionar uma string bruta para stdin, o emacs insere os caracteres 'EOF' e uma nova linha entre eles, então
cat <<< 'some string'
torna-se
cat <<EOF
< 'some string'
Posso voltar e excluir os caracteres extras para obter o buffer no estado desejado, mas esse é um comportamento muito desagradável, e parece acontecer apenas no modo de script de shell, que geralmente é a única vez que digito esse padrão. Existe maneira de desativar esse comportamento?
bash
shell-mode
Erik
fonte
fonte
<<<
comC-3 <
.sh-mode-hook
não funcionou para mim, massh-set-shell-hook
funcionou.glucas está exatamente correto, mas para complementar sua resposta, eu tenho esse código que usei para tornar a inserção de documentos aqui um pouco mais inteligente.
Este conselho, juntamente com o
sh-electric-here-document-mode
ativado, faz com que, se você digitar duas divisas, o documento automático aqui seja criado, mas, se o próximo caractere digitado for outra divisa, ele será revertido e você ficará com apenas <<<.Claro que isso significa que se você realmente deseja iniciar um documento aqui com uma divisa, precisará inseri-lo em bruto C-q<. Portanto, depende do que você faz mais, se você faz mais strings aqui do que documentos aqui, pode ser bom ter, mesmo se não o fizer, é raro que você queira iniciar um documento aqui com uma divisa e ser incomodado.
fonte