Во‐первых, никогда не используйте
map и
normal, если не можете внятно объяснить, почему вы собираетесь использовать их, а не
noremap и
normal!. Во‐вторых, уберите
map!, эта команда ничего полезного у вас не делает, поскольку в командном режиме
<C-o> ничего не делает, а режим вставки уже будет покрыт
inoremap. В‐третьих, прочитайте наконец про режимы.
normal! запускает команду в нормальном режиме,
V переходит в визуальный, а
inoremap определяет команду в
режиме вставки. Разумеется, ничего не работает. Не пытайтесь использовать привязку для режима вставки в визуальном режиме.
И не используйте
<C-o>:normal "+gP<CR> для вставки: после
<C-o> вы
уже в нормальном режиме (точнее в нормальном режиме для одной команды),
:normal вам не нужен совершенно: просто уберите и его, и
<CR> и всё будет так же работать. В
inoremap <C-a> <C-o>:normal! ggVG<CR> эта команда тоже в принципе не нужна: просто используйте два
<C-o>:
(Created by format.vim)
inoremap <C-a> <C-o>gg<C-o>VG
xnoremap <C-c> "+y
inoremap <C-v> <C-o>"+gP
И ещё: если вам нужны эти привязки в режиме вставки, то вы совершенно точно используете Vim неправильно.
/dev/random писал(а): ↑09.01.2015 18:45
map! - это мэппинг для нормального режима, imap - режима вставки. При этом если у вас что-то выделено, то вы находитесь в визуальном режиме.
map! — это привязка для режима вставки и командного режима одновременно. Она абсолютно никак не относится к нормальному режиму. Без восклицательного знака эта команда
тоже не для нормального режима, а сразу для четырёх: нормального, визуального, выделения и режима ожидания оператора.