Ich benutze vim in verschiedenen Kontexten. Normalerweise schreibe ich dies gerne in mein .vimrc
:
let &t_ti.="\<Esc>[1 q"
let &t_SI.="\<Esc>[5 q"
let &t_EI.="\<Esc>[1 q"
let &t_te.="\<Esc>[0 q"
Dadurch werden im Einfüge- und Normalmodus unterschiedliche Cursor verwendet (Normalmodus ist ein Blockcursor und Einfügemodus ist eine vertikale Linie). Dies funktioniert für mich in Minze mit Cygwin, Xterm und auch Rvxt ganz gut. Wenn ich jedoch den GNU-Bildschirm verwende, ändert sich mein Cursor nicht mehr. Ich habe Hinweise zur Behebung dieses Problems für tmux gesehen (zum Beispiel hier: Cursorform unter vim + tmux ), aber nichts, was ich für Screen versucht habe, hat funktioniert. Im Moment verwende ich dies in meinem .vimrc
:
"Underline currently edited line
if !has("gui_running")
:autocmd InsertEnter * set cul
:autocmd InsertLeave * set nocul
endif
:has("gui_running")
Dadurch wird die aktuelle Zeile im Einfügemodus unterstrichen (dies verhindert, dass sie in gvim wirksam wird). Ich verwende es auch set laststatus=2
, um die Statusleiste unten zu halten, was ebenfalls hilfreich ist. Ich wünschte nur, es würde ein bisschen mehr wie gvim funktionieren. Hat jemand eine Lösung dafür gefunden?
quelle
Antworten:
Ich glaube, ich habe es herausgefunden, obwohl ich das Update nicht ganz verstehe. Dies scheint für mintty, xterm und rxvt zu funktionieren:
Dies hängt davon ab, dass Ihr screenrc so etwas wie "term screen" oder "term screen-256color" hat, damit die vimrc-Datei erkennen kann, auf welchem Terminal Sie sich befinden. Das einzige verbleibende Terminal, das ich regelmäßig benutze, wenn dies nicht funktioniert, ist PuTTY, aber ich denke, es unterstützt buchstäblich keine Terminalbefehle zum Ändern der Cursorform. Mintty wurde vor einiger Zeit von PuTTY gegabelt, und ich habe hier ( https://www.cygwin.com/ml/cygwin-announce/2009-07/msg00011.html ) gesehen, dass DECSCUSR-Unterstützung nach dieser Gabelung zu mintty hinzugefügt wurde.
Das ist gut genug für mich - wenn ich in eine Maschine ssh'ing, in der ich wirklich meinen Blockcursor in Vim haben möchte, kann ich mich entweder cygwin / ssh oder PuTTY / XMing / rxvt durch ihn bewegen, anstatt PuTTY.
quelle
echo &term
Ausgänge,screen
also habe ich den regulären Ausdruck in der Zeile beginnendif &term ...
mit geändertscreen.*
.