Я перехожу от Gvim к использованию Console Vim с помощью Gnome Terminal 2.32.1.
Мне очень понравилось в Gvim, как курсор будет сплошным квадратом, когда в обычном режиме и тонкой линии, когда вставляется mode.
Для gnome-terminal добавьте это в свой ~/.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
Найдено здесь: Измените форму курсора в разных режимах .
EDIT
Измените последнее ibeam
на block
, чтобы оставить курсор блока.
Нет необходимости использовать автокоманды или gconftool для этого - Vim теперь поддерживает его изначально.
Вставьте следующие строки в ваш vimrc:
let &t_SI = "\<esc>[5 q" " blinking I-beam in insert mode
let &t_SR = "\<esc>[3 q" " blinking underline in replace mode
let &t_EI = "\<esc>[ q" " default cursor (usually blinking block) otherwise
Эти последовательности должны работать в все эмуляторы терминала VTE с версии VTE версии 0.39, выпущенные в конце 2014 года, а также в xterm. Если вы хотите остановить мигание курсора, добавьте по одному к каждому из чисел и вставьте 2
в последовательность для t_EI
(возможные последовательности перечислены в этом ответе , см. также руководство VT510 ).
Для версии терминала gnome> 3.15 Добавьте это к своему ~ / .vimrc.
if has("autocmd")
au VimEnter,InsertLeave * silent execute '!echo -ne "\e[2 q"' | redraw!
au InsertEnter,InsertChange *
\ if v:insertmode == 'i' |
\ silent execute '!echo -ne "\e[6 q"' | redraw! |
\ elseif v:insertmode == 'r' |
\ silent execute '!echo -ne "\e[4 q"' | redraw! |
\ endif
au VimLeave * silent execute '!echo -ne "\e[ q"' | redraw!
endif
Вы получите курсор в нормальном режиме и тонкий в режиме вставки.