Asignación de un comando de shell canalizado en Vim

6

En una pregunta anterior, pregunté sobre cómo enviar el código evaluado a una nueva ventana en MacVim. Obtuve una gran solución, pero presentó otra pregunta: ¿Cómo puedo asignar un comando de teclado en mi .vimrcque implique la salida de tuberías en el shell?

Como ejemplo simple, digamos que quería canalizar los resultados ls -aa una nueva ventana de MacVim. Desde la línea de comando de Vim puedo ingresar !ls -a | mvim -, y los resultados aparecerán en una nueva ventana. ¡Excelente! Ahora, agrego eso a mi .vimrc:

 nmap <Leader>r :w !ls | mvim -<CR>

Vim ahora arroja un error cada vez que intento obtener mi fuente .vimrc, que dice lo siguiente:

E492: Not an editor command:  mvim -<CR>

¿Alguna idea sobre cómo superar esto?

michaelmichael
fuente

Respuestas:

9

Intenta poner esto en tu ~/.vimrcarchivo:

nmap <Leader>r :w !ls <bar> mvim -<CR>

o

nmap <Leader>r :w !ls \| mvim -<CR>
Dennis Williamson
fuente
increíble. Intenté escapar \|sin resultado. No sabía que podías usar <bar>. ¡Gracias!
michaelmichael
He estado usando vim durante casi una década. Me encontré con esto hoy. Encontré una respuesta de casi 10 años. Increíble. Gracias desde el futuro!
Geoff