No meu .vimrc
eu tenho set virtualedit=all
e set nostartofline
. Eu gostaria de ter esses recursos no Emacs. Isso pode ser feito?
virtualedit
permite que o cursor seja posicionado onde não há caracteres, nem mesmo espaços em branco. Permite rolar horizontalmente além de qualquer texto. Se você rolar verticalmente uma linha de cada vez, o cursor sempre sobe uma linha e não altera a coluna em que está, independentemente do conteúdo da linha. Se o cursor estiver além dos caracteres em uma linha e você inserir um caractere, os espaços serão preenchidos à esquerda do caractere inserido.
Com nostartofline
também definido, o cursor não vai para o início da linha se eu usar movimentos que saltam por várias linhas, por exemplo, saltando para o início ou o fim de um arquivo.
Com as duas opções definidas, posso posicionar o cursor, possivelmente além de qualquer texto no arquivo, e pular verticalmente sem que a coluna do cursor seja alterada. Um comando para mover o cursor para o "fim da linha" pulará para o último caractere. Portanto, se o cursor estiver no meio do nada, $
ele realmente moverá o cursor para a esquerda em vez da direita.
Há outra questão que menciona a de Vim, virtualedit
mas ela se preocupa em fazer seleções retangulares. Esta questão está relacionada ao movimento do cursor e ao comportamento de inserir espaços para recuperar os caracteres inseridos.
fonte
evil
?Respostas:
Você pode usar
quarter-plane-mode
oquarter-plane
pacote no GNU ELPA. O objetivo é fornecer esse tipo de funcionalidade.Mas observe que ele faz isso basicamente reutilizando o código do modo de imagem, de modo que sofre do mesmo problema: ele adiciona espaços / linhas ao seu buffer quando você se move (e os remove quando você sai do modo), por isso / pode fazer alterações em seus arquivos e buffers, mesmo que você apenas os mova sem fazer nenhuma modificação real.
fonte
Tente usar o modo de imagem. A solução aqui faz o que você deseja: /programming/13036465/emacs-mode-for-free-cursor-positioning
fonte