Me gustaría poder pegar desde el portapapeles del sistema (o selección de texto) en mi indicador de shell "vi-like" usando el teclado. Normalmente uso zsh y algunas veces bash. En ambos casos, tengo el shell configurado con un comportamiento similar a vi ( bindkey -v
/ set -o vi
).
En vim, el comportamiento que estoy buscando está disponible con la secuencia de teclas "+p
. Sin embargo, esta secuencia de teclas en particular no funciona como se esperaba en un indicador de shell habilitado para vi. ¿Hay alguna manera de habilitar esto o un comportamiento similar, usando solo el teclado, mientras se mantienen las combinaciones de teclas tipo vi en un indicador de shell zsh o bash?
- editar -
Caso de uso: a menudo navego entre Firefox con el complemento Pentadactyl , un emulador de terminal y vim, usando el administrador de ventanas Xmonad con teclas personalizadas para moverme. Los tres programas tienen combinaciones de teclas tipo vi, lo cual es muy eficiente (para "memoria de dedo"), por lo que sería ideal comunicar el texto entre ellos usando la sintaxis vim (o una sintaxis muy similar) solamente.
xsel
y copiar su código sugerido con una ligera modificación en mi .zshrc (elegí '^ P' en lugar de '^ X', sobrescribiendo el comportamiento original de '^ P')Aquí hay una solución para zsh (modo vi) que envuelve los widgets originales para que el portapapeles siempre esté sincronizado
Reemplace
xclip
con su herramienta de portapapeles preferida.fuente
xterm-termite
.La selección y el portapapeles son cosas diferentes en X Window, y en mi opinión, los "entornos de escritorio" tienden a hacer que el problema sea aún más confuso de lo que era.
¿Funciona Shift-Insert para usted? En aplicaciones X desnudas, está obligado a pegar la selección cuando se realiza dicho enlace.
fuente
Esta solución funciona si ha instalado
oh-my-zsh
y habilitado elvi-mode
complemento.Gilles
xsel
yzle
solución basada no funcionó para mí. Sin embargo, dado que configuré vim para usar mi portapapeles del sistema de forma predeterminada (set clipboard=unnamedplus
en~/.vimrc
), simplemente escribo ven modo terminal normal para abrir el comando actualvim
y luego puedo copiarlo al portapapeles X con cualquiera de losvim
comandos de tirar.fuente
:term
disponibles en las nuevas versiones de Neovim y Vim?v
en modo normal para editar el comando actualmente escrito dentro de vim en lugar de en el indicador de terminal.:term
en su respuesta, de lo contrario no está claro en absoluto.:term
. Sin embargo, descubrí que la funcionalidad a la que me refiero es realmente proporcionada poroh-my-zsh
. He actualizado la respuesta en consecuencia.