Vim: автоматическое отключение замены iab при вставке кода - PullRequest
1 голос
/ 12 мая 2011

В терминале, как я могу автоматически отключить замену iab при вставке кода? Я не понимаю, как это возможно, но вы никогда не знаете ... одно, что я знаю, это то, что это раздражает.

Примечание : ключевое слово здесь автоматически , а не вручную через :set paste

1 Ответ

1 голос
/ 12 мая 2011

Для Vim не существует стандартного способа отличить, был ли введенный символ фактически набран пользователем или сгенерирован для него X из буфера обмена или буфера выбора.Вот почему существует режим вставки для ручного переключения Vim в состояние, когда весь ввод не интерпретируется как интерактивный ввод.

Таким образом, у вас есть две альтернативы.

  1. Вставить из"* или "+ псевдобуферы (которые представляют буфер обмена и выбор X соответственно), , если вы используете GVim или ваш Vim, скомпилированный с функцией X11 (или, по крайней мере, xterm_clipboard) .Это просто.

  2. В случае, если консоль Vim работает в терминале, вы можете вручную синхронизировать один из буферов (например, безымянный регистр "") с выбором буфера обмена или X.Например, поскольку я использую только терминал Vim, в моем файле .vimrc есть следующие сопоставления:

    nmap <silent> <leader>y :call system('xclip', @")<cr>
    nmap <silent> <leader>p :call XClipRead()<cr>
    function! XClipRead()
        let s = system('xclip -o')
        if v:shell_error
            return
        endif
        call setreg('"', s)
    endfunction
    

    Чтобы вставить содержимое буфера выбора X с использованием этих сопоставлений, вам нужно набрать свой ключ лидера, p, а затем соответствующую команду вставки Vim.Если вы согласны потерять возможность использования различных команд вставки (таких как P, gp, ]p и т. Д.), Вы можете определить отображение, которое выполняет обе задачи.Например,

    nmap <silent> <leader>P :call XClipRead()<cr>p
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...