Få tilgang til utklippstavleinnhold på tvers av flere forekomster av Vim fra terminal


Vim (Vi IMproved) er en av de mest favoritt tekstredigerere blant programmerere. Den har sine egne spesialiteter i å utføre forskjellige operasjoner med korte håndkommandoer.

For å kopiere den uthevede teksten bruker vi for eksempel 'y'-kommandoen og 'x' for å klippe den samme. Men som standard kan ikke vim (og ikke gVim) utklippstavleinnhold nås etter å ha lukket vim-forekomster.

Vim bruker ‘+’-registeret for å referere til systemets utklippstavle. Du kan kjøre 'vim –version', og hvis du ikke kan se noe som +xterm_clipboard og i stedet xterm_clipboard, vil internt utklippstavleinnhold ikke være tilgjengelig utenfor vim.

For å få tilgang til innholdet i vim-utklippstavlen, må du installere gvim-pakken. gVim er en GUI-modus for vim-redigering der utklippstavlen er aktivert som standard.

# yum install -y gvim

Deretter aktiverer du RPMForge Repository for å installere parcellite-pakken. Parcellite er en lett, liten og gratis utklippstavlebehandler for Linux.

# yum install -y parcellite

Når den er installert, kjør følgende kommando. Hvor argumentet '&' brukes til å sende parcellite for å kjøre som en bakgrunnsprosess.

# parcellite &

Sjekk om alternativet er aktivert i gvim.

# gvim --version

Sørg for at du har +xterm_clipboard-alternativet vist i utdataene som vist nedenfor.

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

Åpne brukerens .bashrc-fil.

# vim ~/.bashrc

Og legg til aliaset og lagre filen (trykk 'i' for å sette inn linje og trykk ESC, kjør deretter :wq for å lagre og avslutte).

# .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

Dette aliaset er en innebygd som brukes til å omgå en kommando til en annen. Hver gang vim-kommandoen utstedes, går det tilsvarende aliaset til gvim med utklippstavlen aktivert som standard.

Rediger nå '.vimrc'-filen din på lignende måte (i tilfelle hvis du ikke har en .vimrc-fil, generer en slik fil og kom så tilbake hit.

# vim ~/.vimrc

Legg til følgende linje og lagre filen.

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

Åpne nå hvilken som helst fil i vim og marker tekstdelen (ved å bruke 'v'-kommandoen) og trykk på \+y. Prøv å lime inn hvor som helst utenfor vim (etter lukking eller uten lukking av vim) og du er ferdig.

Kjør følgende kommando for å generere .vimrc-fil (hopp over denne delen hvis du allerede har en).

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

In vim kjør følgende etter å ha trykket på ESC-tasten (In vim kjøres hver kommando etter å ha trykket på ESC-tasten som setter deg i kommandomodus).

:r $VIMRUNTIME/vimrc_example.vim 
:w