tutorial texto salir pegar insertar guardar español editar curso copiar vim newline key-bindings keymapping

texto - Inserta una nueva línea sin entrar en modo insertar, vim



vim linux (6)

Quiero insertar nuevas líneas en modo normal en vim usando Shift-Enter y Ctrl-Enter . Intento algunas soluciones y soluciones de mezcla de Vim Wikia - Insertar nueva línea sin ingresar al modo de inserción, pero Shift-Enter y Ctrl-Enter no respondieron:

" put a new line before or after to this line nnoremap <S-CR> m`o<Esc>`` nnoremap <C-CR> m`O<Esc>`` " reverse J command nnoremap <C-J> vaW<Esc>Bi<CR><Esc>k:s//s/+$//<CR>$


Debido a la forma en que la entrada del teclado se maneja internamente, lamentablemente no es posible hoy en día. (Este caso particular debería funcionar en GVIM, sin embargo.) Algunas combinaciones de teclas, como Ctrl + no alfabético no se pueden mapear, y Ctrl + letra vs. Ctrl + Mayús + letra no se pueden distinguir. (A menos que su terminal envíe un código de termcap distinto, que la mayoría no). En el modo de inserción o línea de comando, intente escribir la combinación de teclas. Si no ocurre nada / está insertado, no puede usar esa combinación de teclas. Esto también se aplica a <Tab> / <CI> , <CR> / <CM> / <Esc> / <C-[> etc. (La única excepción es <BS> / <CH> .) Este es un punto de dolor conocido y el tema de varias discusiones sobre vim_dev y el canal de IRC #vim.

Algunas personas (principalmente Paul LeoNerd Evans) quieren arreglar eso (incluso para la consola Vim en terminales que lo respaldan), y han lanzado varias propuestas .

Pero a partir de hoy, aún no se han presentado parches o voluntarios, aunque muchos han expresado su deseo de tener esto en una futura versión principal de Vim 8.


Esto es lo que uso:

nmap <CR> :a<CR><CR>.<CR>

Intenté nmap <CR> o<Esc> , pero hizo que la IU tuviera problemas ya que cambiaba al modo insertar y viceversa.


Marca una línea vacía y deslízala y pégala:

Comenzando con el cursor en línea vacía:

yy + (shift + p)

"yy" tira de la línea, y "shift + p" lo inserta debajo, sin ingresar al modo de inserción.


Mi alternativa es usar oo (respectivamente OO ) para insertar una nueva línea debajo (o sobre) la corriente a través de esta asignación: nmap oo o<Esc>k (resp nmap OO O<Esc>j )


Puedes usar un truco para hacer esto.

En el modo de edición, puede usar p para pegar el portapapeles actual. Como o agrega una nueva línea, puede usar o<ESC>ddp para agregar una nueva línea debajo del cursor; a partir de ahí, p agregará una nueva línea hasta que elimine algo más.


Yo uso: s / / n / / r / r / g (sustituye la nueva línea con dos nuevas líneas, que es lo mismo que "o").