tutorial sheet rtor keys duplicate delete commands cheat vim shortcuts

sheet - vim rtor



VIM: Cartas de método abreviado asignables(no utilizadas)? (5)

Estoy tratando de crear dos asignaciones que son eficientes para mí:

map X ddp

Que utilizaría para eliminar y pegar de una sola vez.

map X "_dw

Lo que eliminaría una palabra sin tirar en un registro.

Sin embargo, no quiero romper ningún atajo útil y existente, así que me pregunto qué teclas podría usar, ¿alguna sugerencia? ¿Estoy siendo demasiado inquieto?


Cada uno de los caracteres ASCII, mayúsculas y minúsculas, se usa para algo en Vim. Así que vas a terminar sobrescribiendo algo, solo elige algo que no usas. Puede ser útil usar un idioma común para tus propias extensiones. Yo uso una coma inicial, por ejemplo:

map ,w :w!<CR> map ,e :e #<CR> imap ,, <ESC>

(Lo último es particularmente útil para mí, ya que casi nunca necesito escribir dos comas consecutivas en el modo de inserción, y es bueno no tener que ir hasta la tecla Esc).


Muchos complementos de Vim utilizan un <Leader> inicial para iniciar sus secuencias de teclas; esta es una clave no utilizada (de otro modo, normalmente) que el usuario puede configurar.

*<Leader>* *mapleader* To define a mapping which uses the "*mapleader*" variable, the special string "*<Leader>*" can be used. It is replaced with the string value of "*mapleader*". If "*mapleader*" is not set or empty, a backslash is used instead. Example: :map <Leader>A oanother line<Esc> Works like: :map /A oanother line<Esc> But after: :let mapleader = "," It works like: :map ,A oanother line<Esc> Note that the value of "*mapleader*" is used at the moment the mapping is defined. Changing "*mapleader*" after that has no effect for already defined mappings.


Por lo general, uso control + [letra] o alt + [letra] para la mayoría de las asignaciones y es seguro, pero tenga cuidado con ''w'', ya que es necesario para los comandos de la ventana. Es posible que también esté interesado en arpeggio.vim que le permite crear asignaciones a grupos de teclas presionadas simultáneamente; ampliará enormemente las posibilidades de sus asignaciones sin peligro de sobre-mapear algo. Por ejemplo, podría asignar "dp" (presionado simultáneamente) para ejecutar "ddp" para eliminar y pegar en un comando.


Uhmm, no, no lo hagas. Al crear sus asignaciones, intente no sobrescribir nada ... no tanto porque no usa el comando que está superponiendo, sino porque algún complemento que tenga o quizás tenga que usarlo.

Y luego lo superpones, y luego tienes que preocuparte.

Personalmente, para comandos como los que dio como ejemplo, me gustan las combinaciones de teclas Ctrl +. Hay muchos libres en Vim, y las letras en el lado izquierdo cerca de Ctrl forman un buen par entonces.

Por cierto, ¿qué intentas hacer con esas asignaciones? Entiendo la segunda (eliminar palabra por palabra), pero la primera no tiene sentido para mí. Qué se supone que haga ? ¿Transponer líneas?


vim help tiene una sección: map-which-keys

1.7 WHAT KEYS TO MAP *map-which-keys* If you are going to map something, you will need to choose which key(s) to use for the {lhs}. You will have to avoid keys that are used for Vim commands, otherwise you would not be able to use those commands anymore. Here are a few suggestions: - Function keys <F2>, <F3>, etc.. Also the shifted function keys <S-F1>, <S-F2>, etc. Note that <F1> is already used for the help command. - Meta-keys (with the ALT key pressed). |:map-alt-keys| - Use the ''_'' or '','' character and then any other character. The "_" and "," commands do exist in Vim (see |_| and |,|), but you probably never use them. - Use a key that is a synonym for another command. For example: CTRL-P and CTRL-N. Use an extra character to allow more mappings. See the file "index" for keys that are not used and thus can be mapped without losing any builtin function. You can also use ":help {key}^D" to find out if a key is used for some command. ({key} is the specific key you want to find out about, ^D is CTRL-D).