Редактор VIM — это действительно мощный инструмент, но что меня расстроило в начале, так это копирование текста из системного буфера обмена, скажем, из Safari или Notes, и вставка его в VIM.

Я всегда заканчивал текст с отступом, странным форматированием или просто не вставкой, что довольно неприятно, если вы действительно пытаетесь что-то использовать.

Мне удалось исправить это с помощью пары хаков и нескольких настроек.

Обратите внимание, что я запускаю VIM внутри iTerm, а не версию MacVim. Это просто мое личное предпочтение, так как оно более низкоуровневое, и если вы установите его с помощью homebrew, вам не придется беспокоиться о включении поддержки Ruby, оно просто будет встроено.

Итак, сначала откройте файл .vimrc, который обычно находится в вашем домашнем каталоге с помощью:

=> vim ~/.vimrc

Теперь сразу после того, как вы определили свои плагины vundle, если они у вас есть, добавьте:

set clipboard=unnamed

Это сообщит VIM о доступе к системному буферу обмена.

Затем вставьте этот небольшой хак:

let &t_SI .= “\<Esc>[?2004h”
let &t_EI .= “\<Esc>[?2004l”
inoremap <special> <expr> <Esc>[200~ XTermPasteBegin()
function! XTermPasteBegin()
 set pastetoggle=<Esc>[201~
 set paste
 return “”
endfunction

Это просто магия, и я очень благодарен Marcin Kulik за публикацию этого на coderwall.

Что это будет делать, так это автоматически отключать и снова включать режим автоматического отступа VIM, когда вы вставляете что-либо в VIM, поэтому, когда вы найдете этот отличный фрагмент кода, который спасет ваш день, вы можете просто скопировать и вставить его в VIM бесплатно. опасаясь, что это испортит форматирование.

Вы можете найти его статью здесь вместе с дополнительным фрагментом для вставки в сеанс TMUX.

Наслаждаться.