Wikia

Vim Tips Wiki

Changes: Change cursor shape in different modes

Edit

Back to page

(alphabetize terminal list)
Line 24: Line 24:
 
If you use more than one profile in gnome-terminal, you might have to adapt this to your profiles.
 
If you use more than one profile in gnome-terminal, you might have to adapt this to your profiles.
   
==For xfce-terminal==
+
==For iTerm2 on Mac OS X ==
<pre>
 
if has("autocmd")
 
au InsertEnter * silent execute "!sed -i.bak -e 's/TERMINAL_CURSOR_SHAPE_BLOCK/TERMINAL_CURSOR_SHAPE_UNDERLINE/' ~/.config/Terminal/terminalrc"
 
au InsertLeave * silent execute "!sed -i.bak -e 's/TERMINAL_CURSOR_SHAPE_UNDERLINE/TERMINAL_CURSOR_SHAPE_BLOCK/' ~/.config/Terminal/terminalrc"
 
au VimLeave * silent execute "!sed -i.bak -e 's/TERMINAL_CURSOR_SHAPE_UNDERLINE/TERMINAL_CURSOR_SHAPE_BLOCK/' ~/.config/Terminal/terminalrc"
 
endif
 
</pre>
 
==For Konsole in KDE4==
 
 
<pre>
 
<pre>
 
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
 
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
Line 30: Line 30:
 
</pre>
 
</pre>
   
This works with multiple tabs and windows.
+
This does not work with Terminal
   
==For iTerm2 on Mac OS X ==
+
==For Konsole in KDE4==
 
<pre>
 
<pre>
 
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
 
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
Line 38: Line 38:
 
</pre>
 
</pre>
   
This does not work with Terminal
+
This works with multiple tabs and windows.
  +
  +
==For xfce-terminal==
  +
<pre>
  +
if has("autocmd")
  +
au InsertEnter * silent execute "!sed -i.bak -e 's/TERMINAL_CURSOR_SHAPE_BLOCK/TERMINAL_CURSOR_SHAPE_UNDERLINE/' ~/.config/Terminal/terminalrc"
  +
au InsertLeave * silent execute "!sed -i.bak -e 's/TERMINAL_CURSOR_SHAPE_UNDERLINE/TERMINAL_CURSOR_SHAPE_BLOCK/' ~/.config/Terminal/terminalrc"
  +
au VimLeave * silent execute "!sed -i.bak -e 's/TERMINAL_CURSOR_SHAPE_UNDERLINE/TERMINAL_CURSOR_SHAPE_BLOCK/' ~/.config/Terminal/terminalrc"
  +
endif
  +
</pre>
   
 
==See also==
 
==See also==

Revision as of 16:06, November 19, 2012

Tip 1622 Printable Monobook Previous Next

created March 28, 2009 · complexity basic · author Weltensegler · version 7.0


To change the shape of the cursor in different modes, you can add the following into your vimrc.

For the Gnome-Terminal (version 2.26)

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

If you use more than one profile in gnome-terminal, you might have to adapt this to your profiles.

For iTerm2 on Mac OS X

let &t_SI = "\<Esc>]50;CursorShape=1\x7"
let &t_EI = "\<Esc>]50;CursorShape=0\x7"

This does not work with Terminal

For Konsole in KDE4

let &t_SI = "\<Esc>]50;CursorShape=1\x7"
let &t_EI = "\<Esc>]50;CursorShape=0\x7"

This works with multiple tabs and windows.

For xfce-terminal

if has("autocmd")
  au InsertEnter * silent execute "!sed -i.bak -e 's/TERMINAL_CURSOR_SHAPE_BLOCK/TERMINAL_CURSOR_SHAPE_UNDERLINE/' ~/.config/Terminal/terminalrc"                                                                                          
  au InsertLeave * silent execute "!sed -i.bak -e 's/TERMINAL_CURSOR_SHAPE_UNDERLINE/TERMINAL_CURSOR_SHAPE_BLOCK/' ~/.config/Terminal/terminalrc"                                                                                          
  au VimLeave * silent execute "!sed -i.bak -e 's/TERMINAL_CURSOR_SHAPE_UNDERLINE/TERMINAL_CURSOR_SHAPE_BLOCK/' ~/.config/Terminal/terminalrc"  
endif

See also

Comments

In a vim_use thread on 31 March 2009, Matt Wozniski made the following comments:

Re the Gnome code: Unless I'm misunderstanding something, this would not only work improperly when combined with tools like screen and dvtm, but also, when you have multiple terminals open, it would change the cursor shape in all of them!

Re the KDE4 code: That won't play nicely with gnu screen, or with dvtm, or any of the other terminal multiplexers out there.

Both will probably have problems with multiple tabs.


Around Wikia's network

Random Wiki