Как изменить форму курсора VIM в разных режимах в терминале Gnome
Я хотел бы изменить курсор VIM (не gVIM) в зависимости от того, в каком режиме я сейчас. Я бы хотел:
- Нормальный и визуальный режимы = курсор блока
- Режимы вставки и команды = курсор луча
Я попытался добавить следующий код в .vimrc
, но он не сработал.
if has("autocmd")
au InsertEnter * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam"
au InsertLeave * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape block"
au VimLeave * silent execute "!gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/cursor_shape ibeam"
endif
Я получил этот бит кода из http://vim.wikia.com/wiki/Change_cursor_shape_in_different_modes, но он говорит, что он предназначен для Gnome-Terminal (версия 2.26), и у меня есть Gnome -Терминал (версия 3.60). Не уверен, что именно по этой причине он не работает.
Любые идеи о том, как это сделать?
Ответы
Ответ 1
У меня есть gnome-terminal 3.10.2, и я получил его работу со следующими шагами:
Создайте script под названием gnome-terminal-cursor-shape.sh:
#!/bin/sh
DEFAULTPROF=`dconf read /org/gnome/terminal/legacy/profiles:/default`
DEFAULTPROF=`echo "$DEFAULTPROF" | sed -e "s/^'/:/" -e "s/'$//"`
dconf write /org/gnome/terminal/legacy/profiles:/$DEFAULTPROF/cursor-shape "'$1'"
И вызовите его с помощью ibeam, block или underline, чтобы изменить форму курсора.
Поместите script в /usr/bin или/usr/local/bin и добавьте следующие строки в ваш .vimrc:
if has("autocmd")
au InsertEnter *
\ if v:insertmode == 'i' |
\ silent execute "!gnome-terminal-cursor-shape.sh ibeam" |
\ elseif v:insertmode == 'r' |
\ silent execute "!gnome-terminal-cursor-shape.sh underline" |
\ endif
au InsertLeave * silent execute "!gnome-terminal-cursor-shape.sh block"
au VimLeave * silent execute "!gnome-terminal-cursor-shape.sh block"
endif
Ответ 2
Для меня решение gnidmoos работало после смены сценария script с именем gnome-terminal-cursor-shape.sh на:
#!/bin/sh
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/cursor_shape" --type string "$1"
(используя те же строки в .vimrc)
Ps. Я запускаю ubuntu 14.04, терминал GNOME 3.6.2
Ура!