No vim, como mapear “command-right” e “command-left” para o início da linha e o fim da linha no mac?

10

Estou tentando fazer com que seja como a edição de texto padrão no Mac. Eu tentei map! <D-Left> 0 e map! <D-Right> $ no ~ / .vimrc, mas é claro que não funcionou. Como posso fazer isso?

Marty
fonte

Respostas:

9

Até onde eu sei, a sintaxe do modificador de chave de comando ( <D-...>) é eficaz apenas nas instâncias do Vim no modo GUI no Mac OS X.

A instância do Vim deve ser baseada em GUI, porque a maioria dos emuladores de terminal ( Terminal , iTerm etc.) não gera sequências de controle para combinações de teclas de comando, portanto, uma instância de apenas um tty do Vim não tem como saber que uma combinação de teclas de comando já foi pressionado (o emulador de terminal nunca envia nada pela interface tty). De fato, o Terminal liga ⌘ ← e ⌘ → (Command-Esquerda e -Right) a percorrer as janelas abertas, de modo que essas teclas "já foram utilizadas" quando você digita no contexto do Terminal .

O MacVim (quando executado no modo GUI) é fornecido com mapeamentos funcionais para (entre outras teclas pressionadas no estilo Mac)<D-Left>e<D-Right>(respectivamente, para<Home>(quase idêntico a0) e<End>(idêntico a$)). Uma ressalva é que esses mapeamentos padrão são estabelecidos$VIM/gvimrc, para que eles possam ser substituídos corretamente apenas no seu~/.gvimrc .

Eu acho que houve outras versões baseadas em GUI do Vim para Mac OS X, mas o MacVim parece ser o único moderno.

Grosso modo, os arquivos de inicialização são processados nesta ordem: $VIM/vimrc, ~/.vimrc, $VIM/gvimrc, ~/.gvimrc. Desde os mapas do MacVim , você precisa colocar seu mapeamento (se você realmente deseja substituí-lo) no seu para que ele tenha a "palavra final".$VIM/gvimrc<D-Left><D-Left>~/.gvimrc

Chris Johnsen
fonte
obrigado. i tentou iTerm 2, ele trabalhou com isso, mas ainda assim ... o que é uma dor ... bem vindo de volta em minha vida, Xcode
Marty