Як скопіювати вибрані рядки в буфер обміну у vim. Я знаю, як це зробити для всіх текстових файлів , але хочу зробити для вибраних рядків. Дякую!
Як скопіювати вибрані рядки в буфер обміну у vim. Я знаю, як це зробити для всіх текстових файлів , але хочу зробити для вибраних рядків. Дякую!
Відповіді:
SHIFTVпереводить вас у режим вибраних рядків. Потім "*yперетягує вибрані на даний момент рядки до *реєстру, який є буфером обміну. Існує досить багато різних реєстрів, для різних цілей. Дивіться розділ selection and drop registersдля отримання додаткової інформації про відмінності між *і +регістрами на Windows , і Linux.
Якщо ви працюєте на Linux і використовуєте VIm версії 7.3.74 або новішої (версія, яка встановлюється в Ubuntu 11.10 і далі задовольняє це), ви можете зробити
set clipboard=unnamedplus
який розмістить потертий текст у глобальному буфері обміну та дозволить вставляти з глобального буфера обміну без використання спеціальних регістрів. На відміну від рішення ldigas, це також буде працювати на версіях VIm, не пов'язаних із графічним інтерфейсом.
vim-gnomeпакет замість vim.
vim --version | grep "+xterm_clipboard".
clipboard=unnamedзамість цього ( vim.wikia.com/wiki/Accessing_the_system_clipboard )
set guioptions+=a
буде, ... ухмм, коротше кажучи, кожного разу, коли ви щось вибираєте / витягуєте, також поміщайте це в буфер обміну (не Vim, а глобальну клавіатуру віконної системи). Таким чином, вам не доведеться думати про втягування речей у спеціальний реєстр.
Для GVIM натисніть, vщоб перейти у візуальний режим; виділіть текст і натисніть, Ctrl+Insertщоб скопіювати виділення в глобальний буфер обміну.
З меню ви бачите, що клавіша швидкого доступу, "+yтобто утримуйте клавішу Shift, потім натисніть ", потім, +а потім відпустіть Shift і натисніть y(громіздко порівняно з Shift + Insert).
Якщо ви використовуєте vim в MAC OSX, на жаль, він поставляється зі старішою версією та не відповідає параметрам буфера обміну. На щастя, домашнє пиво може легко вирішити цю проблему.
встановити vim:
brew install vim --with-lua --with-override-system-vim
встановити gui verion vim:
brew install macvim --with-lua --with-override-system-vim
перезапустіть термінал, щоб набути чинності.
додайте наступний рядок до ~ / .vimrc
set clipboard=unnamed
тепер ви можете скопіювати рядок у vim with yy
та вставити його загальносистемно.
Встановіть "xclip", якщо цього не зробили ...
sudo apt-get install xclip
Xclip поміщає дані в буфер обміну "виділення / виділення", який ви натискаєте середнім клацанням, щоб вставити, на відміну від "ctrl + v"
Перебуваючи у vim, використовуйте команди ex:
7w !xclip
або
1,7w !xclip
або
%w !xclip
Потім просто клацніть середнім клацанням, щоб вставити в будь-яку іншу програму ...
Якщо vim скомпільовано з підтримкою буфера обміну, тоді ви можете використовувати "*yзначення: витягнути візуально виділений текст до реєстру *('*' - для буфера обміну)
Якщо підтримка буфера обміну відсутня, я думаю, що лише іншим способом є використання Ctrl+Insertпісля візуального виділення тексту у vim.
Я додав наступний рядок до свого .vimrc
vnoremap <F5> "+y<CR>
Це дозволяє скопіювати виділений текст у буфер обміну, натиснувши F5. Ви повинні працювати у візуальному режимі, щоб це працювало.
~/.vimrcДякую, це набагато краще.
Додайте наступний код у свій .vimrc:
if has('clipboard')
if has('unnamedplus') " When possible use + register for copy-paste
set clipboard=unnamed,unnamedplus
else " On mac and Windows, use * register for copy-paste
set clipboard=unnamed
endif
endif