我曾经使用过gvim,但我想使用vim + tmux的好处。因此我想改为vim。但是在vim中,光标样式不会改变,这取决于我是哪种模式,这是gvim的一个有用特性。我使用zsh(oh-my-zsh)和gnome-terminal下面。
我尝试了这个答案:http://vim.wikia.com/wiki/Change_cursor_shape_in_different_modes
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
但是这会将游标更改为globaly。绝对是我不想要的东西
接下来我尝试了这个插件:http://www.vim.org/scripts/script.php?script_id=4403,但它既没有效果。
答案 0 :(得分:2)
可能你需要wincent/terminus vim插件:
在插入模式下,光标形状变为细垂直条。在替换模式下,它会变为下划线。返回正常模式时,它将恢复为标准“块”形状。提供配置选项以在不同形状中进行选择。
答案 1 :(得分:0)
对于颜色,我使用的是:
let &t_SI = "\<Esc>]12;yellow\x7"
let &t_SR = "\<Esc>]12;red\x7"
let &t_EI = "\<Esc>]12;blue\x7"
其他选择:
" solid underscore
" let &t_SI .= "\<Esc>[4 q"
" solid block
" let &t_EI .= "\<Esc>[1 q"
" 1 or 0 -> blinking block
" 3 -> blinking underscore
" Recent versions of xterm (282 or above) also support
" 5 -> blinking vertical bar
" 6 -> solid vertical bar
这些是termcap代码,请参阅help termcap-cursor-color。代码本身是console_codes(4)。因此,这些是与终端本身的交互,而不是vim会话。
遗憾的是,我没有解决有关离开Vim并返回原始光标颜色的问题。我尝试了以下及其中的许多变体:
au VimLeave * let &t_EI = "\<Esc>]12;white\x7"
au VimLeavePre * :!echo -ne "\033]12;white\000"
au VimLeavePre * let &t_SI = "\<Esc>]12;white\x7"
但没有成功。无论如何,这是如何改变与编辑模式相关的光标形状和颜色。
对于更改模式的更一般的更改(例如,colorscheme更改),我使用
au InsertEnter * call ColoursBasedOnMode(v:insertmode)
au InsertLeave * call ColoursBasedOnMode('n')
autocmd BufWinEnter,BufNew * call ColoursBasedOnMode('n')
我有:
:
:
elseif a:mode == 'i'
"echo " ColoursBasedOnMode insert mode"
"set nonumber
"set norelativenumber
colorscheme railscasts
:
:
答案 2 :(得分:0)
仅为此终端仿真器设置终端选项。 正如此处指出:https://stackoverflow.com/a/25327689/2544873。
let &t_SI = "\<Esc>]12;orange\x7"
let &t_EI = "\<Esc>]12;red\x7"
autocmd VimLeave * silent !echo -ne "\033]112\007"