Simule o virtualedit e o nostartofline do Vim

7

No meu .vimrceu tenho set virtualedit=alle set nostartofline. Eu gostaria de ter esses recursos no Emacs. Isso pode ser feito?

virtualeditpermite 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 nostartoflinetambé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.

outra questão que menciona a de Vim, virtualeditmas 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.

Praxeolitic
fonte
Para sua informação, esta é uma duplicata do stackoverflow.com/questions/7019131/… (a resposta de Stefan a essa parece ser a opção mais provável, mas não sei se alguém realmente implementou essa ideia).
Phillip
Você usa evil?
PythonNut
@ PythonNut Quando eu fiz a pergunta, não.
Praxeolitic

Respostas:

2

Você pode usar quarter-plane-modeo quarter-planepacote 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.

Stefan
fonte
-1

Tente usar o modo de imagem. A solução aqui faz o que você deseja: /programming/13036465/emacs-mode-for-free-cursor-positioning

Kotakotakota
fonte
6
Bem-vindo ao Stack Exchange. Este é um site de perguntas e respostas , não um conjunto de links. Por favor, não poste uma resposta que apenas diga procurar em outro lugar. Inclua as partes essenciais da solução em sua postagem e forneça o link para referência. Consulte Como escrevo uma boa resposta? Para maiores informações.
Gilles 'SO- stop be evil'