Wyszukiwanie w witrynie

Dostęp do zawartości schowka w wielu instancjach Vima z terminala


Vim (Vi IMproved) to jeden z najpopularniejszych edytorów tekstu wśród programistów. Ma swoje specjalizacje w wykonywaniu różnych operacji za pomocą krótkich poleceń ręcznych.

Na przykład, aby skopiować zaznaczony tekst, używamy polecenia „y” i „x”, aby go wyciąć. Jednak domyślnie vim (a nie gVim) nie jest dostępny do zawartości schowka po zamknięciu instancji vima.

Vim używa rejestru „+”, aby odnieść się do schowka systemowego. Możesz uruchomić „vim –version”, a jeśli nie widzisz czegoś takiego jak „+xterm_clipboard” i zamiast tego „xterm_clipboard”, oznacza to zawartość wewnętrznego schowka nie będzie dostępny poza vimem.

Zainstaluj gvim i parcellite

Aby uzyskać dostęp do zawartości schowka vima, musisz zainstalować pakiet gvim. gVim to tryb GUI dla edytora vim, w którym opcja schowka jest domyślnie włączona.

yum install -y gvim

Następnie włącz Repozytorium RPMForge, aby zainstalować pakiet parcellite. Parcellite to lekki, mały i darmowy menedżer schowka dla systemu Linux.

yum install -y parcellite

Po zainstalowaniu uruchom następujące polecenie. Gdzie argument „&” jest używany do wysyłania parcellite do działania jako proces w tle.

parcellite &

Sprawdź, czy opcja jest włączona w gvimie.

gvim --version

Upewnij się, że na wyjściu wyświetlana jest opcja „+xterm_clipboard”, jak pokazano poniżej.

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

Otwórz plik .bashrc użytkownika.

vim ~/.bashrc

Dodaj alias i zapisz plik (naciśnij „i”, aby wstawić linię i naciśnij ESC, a następnie uruchom :wq, aby zapisać i wyjść) .

.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

Alias ten jest wbudowanym narzędziem pozwalającym pominąć pewne polecenie i przekazać je drugiemu. Zatem za każdym razem, gdy zostanie wydane polecenie vim, odpowiedni alias zostanie przesłany do gvim z domyślnie włączonym schowkiem.

Teraz edytuj plik „.vimrc” w podobny sposób (w przypadku, gdy nie masz pliku .vimrc, wygeneruj jeden taki plik i wróć tutaj .

vim ~/.vimrc

Dołącz następujący wiersz i zapisz plik.

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

Teraz otwórz dowolny plik w vimie i zaznacz fragment tekstu (używając polecenia „v”) i naciśnij „+y. Spróbuj wkleić gdziekolwiek poza vimem (po zamknięciu vima lub bez niego) i gotowe.

Generowanie pliku .vimrc

Uruchom następujące polecenie, aby wygenerować plik .vimrc (pomiń tę część, jeśli już go masz).

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

W vimie wykonaj następujące czynności po naciśnięciu klawisza ESC (w vimie każde polecenie jest uruchamiane po naciśnięciu klawisza ESC, co powoduje przejście do trybu poleceń).

:r $VIMRUNTIME/vimrc_example.vim 
:w