Как заставить VIM перемещать курсор персонажа на вставку?

StackOverflow https://stackoverflow.com/questions/5841646

  •  27-10-2019
  •  | 
  •  

Вопрос

Поскольку Mac OS X terminal.app не поддерживает многие визуальные аспекты VIM, включая изменение курсора от блока к линии при переключении в режим вставки, я использую osascript Чтобы приобрести что -то подобное.

В моем .vimrc Файл, который я написал:

autocmd InsertEnter * silent !osascript -e 'tell application "Terminal" to set current settings of first window to settings set 11`j
autocmd InsertLeave * silent !osascript -e 'tell application "Terminal" to set current settings of first window to settings set 12`j

куда settings set 11 это набор настройки терминала с курсором линии и settings set 12 это тот, который имеет блок курсор.

Это на самом деле работает довольно хорошо, но есть одна небольшая проблема. На вставке курсор всегда перемещается один персонаж влево, что не так уж важно, но это может быть аною.

Я пытался компенсировать, положив autocmd InsertLeave h в мой .vimrc, но безрезультатно (это дает мне ошибку).

Как мне сказать Vim:

  1. Не сдвинуться влево?
  2. Если вышеперечисленное невозможно, чтобы компенсировать, переключившись вправо
Это было полезно?

Решение

Прежде чем ответить на вопрос, я бы порекомендовал вам посмотреть на Macvim (если вы этого не сделали). Если вы хотите (или нужно) придерживаться терминала, возможно, другой терминал, подобный Iterm, обеспечит более функциональность. В любом случае, изменение курсора между блоком - барье не присутствует в iTerm (по крайней мере, я так думаю), и ваш способ решить, это было феноменально, теперь здесь закладка. Спасибо!


Простой способ решить это было бы добавить еще одну автокоммерд, как вы сказали. Но в вашем шаблоне и правильной команде для выполнения отсутствуют.

А h не команда. Выполнить нормальный режим последовательность, используйте :normal командование Это может работать правильно:

au InsertLeave * normal! h
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top