vim como manter a posição do cursor ao copiar texto

0

Eu estou (tendo que) usar o gvim no windows. Eu estava acostumado com o ambiente Linux onde quando eu seleciono texto usando o mouse a posição do cursor não muda. Agora, com o gvim no windows,

Meu problema é algo assim -

  1. enquanto eu estou editando na linha 6
  2. e quando eu estou tendo que copiar "hellovim" da linha 3
  3. e quando eu clico com o mouse em "hellovim" para copiá-lo
  4. o cursor é movido para "hellovim" na linha 3
  5. onde gostaria que o cursor ficasse na linha 6

Como posso fazer isso

    
por binithb 06.03.2014 / 14:14

2 respostas

1

Não há nenhuma opção no documento gvim que permita fazer exatamente o que você deseja ao editar seu arquivo vimrc. Para sua informação, as opções estão disponíveis aqui: link

No entanto, você pode adicionar o seguinte código ao seu arquivo vimrc:

augroup NO_CURSOR_MOVE_ON_SELECTION
  au!
  au MenuPopup * let g:oldmouse=&mouse | set mouse=
  au CursorMoved * if exists('g:oldmouse') | let &mouse=g:oldmouse | unlet g:oldmouse | endif
augroup EN

O que faz: Ele registra a posição do cursor no evento RightClick (aquele que exibe o menu contextual). Então, se você fizer uma seleção, o cursor permanecerá na posição registrada (e não será alterado). Uma vez feita, a posição gravada é apagada no movimento do cursor, por ex. acertando uma linha, para que você ainda possa mover o cursor clicando em.

Claro que você pode usar outro evento do que o clique direito.

Espero que ajude.

PS: é como você cria um estado de "seleção", ativado clicando com o botão direito do mouse (ou qualquer outra coisa que você preferir) e desativado pelo cursor, mova com o teclado. Durante esse estado, todas as suas seleções não alterarão a posição do cursor.

    
por 06.03.2014 / 15:00
0

Dê uma olhada nas configurações de opção do mouse.

gvim afile

Para mostrar suas opções atuais, faça

:set

Procure o mouse=<some value> , provavelmente mouse=a significa que o mouse funciona em todos os modos. Você pode selecionar quais modos o mouse irá operar. Então

:mouse=nvc

Ajusta o mouse apenas para o trabalho nos modos Normal, Visual e de Comando (modo de inserção omitido)

Os modos podem ser:

n = Normal mode
v = Visual mode
c = Command mode
i = Insert mode
a = all modes

Agora, quando você estiver inserindo texto, ainda poderá selecionar com o mouse e o cursor permanecerá na sua posição de inserção atual.

    
por 06.03.2014 / 15:32