Búsqueda de sitios web

Acceder al contenido del portapapeles en múltiples instancias de Vim desde la terminal


Vim (Vi IMproved) es uno de los editores de texto favoritos entre los programadores. Tiene especialidades propias en la realización de diferentes operaciones con comandos manuales cortos.

Por ejemplo, para copiar el texto resaltado usamos el comando 'y' y 'x' para cortar el mismo. Pero, de forma predeterminada, no se puede acceder al contenido del portapapeles de vim (y no de gVim) después de cerrar las instancias de vim.

Vim utiliza el registro '+' para referirse al portapapeles del sistema. Puede ejecutar 'vim –version' y si no puede ver algo como "+xterm_clipboard" y en su lugar "xterm_clipboard", entonces el contenido interno del portapapeles no estará disponible fuera de vim.

Instalar gvim y parcelalite

Para acceder al contenido del portapapeles de vim, necesita instalar el paquete gvim. gVim es un modo GUI para el editor vim donde la opción del portapapeles está habilitada de forma predeterminada.

yum install -y gvim

A continuación, habilite el repositorio RPMForge para instalar el paquete parcellite. Parcellite es un administrador de portapapeles liviano, pequeño y gratuito para Linux.

yum install -y parcellite

Una vez instalado, ejecute el siguiente comando. Donde el argumento '&' se utiliza para enviar Parcellite para que se ejecute como proceso en segundo plano.

parcellite &

Compruebe si la opción está habilitada en gvim.

gvim --version

Asegúrese de tener la opción “+xterm_clipboard” mostrada en el resultado como se muestra a continuación.

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Apr  5 2012 10:12:08)
Included patches: 1-411
Modified by <[email >
Compiled by <[email >
Huge version with GTK2 GUI.  Features included (+) or not (-):
+arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent 
+clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments 
+cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic 
+emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path 
+float +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand 
+jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap 
+menu +mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm 
-mouse_jsbterm +mouse_netterm -mouse_sysmouse +mouse_xterm +multi_byte 
+multi_lang -mzscheme +netbeans_intg -osfiletype +path_extra +perl +postscript 
+printer +profile +python +quickfix +reltime +rightleft -ruby +scrollbind 
+signs +smartindent -sniff +startuptime +statusline -sun_workshop +syntax 
+tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse 
+textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual 
+visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup 
+X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save

Abra el archivo .bashrc del usuario.

vim ~/.bashrc

Y agregue el alias y guarde el archivo (presione 'i' para insertar la línea y presione ESC, luego ejecute :wq para guardar y salir) .

.bashrc

User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vim='gvim -v'
Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

Este alias es un elemento integrado que se utiliza para omitir un comando a otro. Por lo tanto, cada vez que se emite el comando vim, el alias correspondiente va a gvim con el portapapeles habilitado de forma predeterminada.

Ahora edite su archivo '.vimrc' de manera similar (en caso de que no tenga un archivo .vimrc, genere uno de esos archivos y luego regrese aquí .

vim ~/.vimrc

Agregue la siguiente línea y guarde el archivo.

autocmd VimLeave * call system("echo -n $'" . escape(getreg(), "'") . "' | xsel -ib")

Ahora abra cualquier archivo en vim y resalte la porción de texto (usando el comando 'v') y presione “+y. Intente pegar en cualquier lugar fuera de vim (después de cerrar o sin cerrar vim) y listo.

Generando archivo .vimrc

Ejecute el siguiente comando para generar el archivo .vimrc (omita esta parte si ya tiene uno).

cd   [This will put you in home directory]       
vim .vimrc

En vim ejecute lo siguiente después de presionar la tecla ESC (en vim, cada comando se ejecuta después de presionar la tecla ESC, lo que lo coloca en modo de comando).

:r $VIMRUNTIME/vimrc_example.vim 
:w