vim - Cursor zeilenunabhängig bewegen

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

vim - Cursor zeilenunabhängig bewegen

Beitrag von Exxter » 18.10.2017 11:46:20

Hallo,

gibt es in vim eine Möglichkeit, einzustellen, dass sich der Cursor unabhängig von der Zeile bewegt? Also ich habe einen ewig langen Text ohne neue Zeile. Wenn ich in der Mitte des Textes etwas ändern möchte (also im Einfügen-Modus bin), muss ich den Cursor an den Anfang oder an das Ende der Zeile setzen und den Cursor mühsam an die Stelle bringen, wo ich etwas ändern möchte. Ich finde dazu irgendwie nichts, weiß auch nicht richtig wonach ich googeln kann.

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: vim - Cursor zeilenunabhängig bewegen

Beitrag von Meillo » 18.10.2017 12:09:01

Im gvim kann man die Maus nehmen.

Ansonsten bietet der vim statt j auch gj , was eine optische statt einer physischen Zeilen nach unten geht.

Um an eine bestimmte Stelle, z.B. zum 80sten Zeichen, in einer Zeile zu springen kannst du 80| (Pipe-Zeichen) verwenden.

Edit: Ach, im Einfuegen-Modus ... aeh, in dem bin ich fast nie, ausser ich fuege gerade Text ein. Mit Escape auf Caps-Lock bin ich so unglaublich fix mit Kombinationen wie ESCbb~A (aendert die Grossschreibung des ersten Buchstabens des vorigen Wortes und geht dann gleich wieder in den Einfuegemodus), dass ich schon gar nicht mehr drueber nachdenke, sondern es ganz automatisch passiert. Dass ich dabei den Modus wechsle geht ganz unter.

Btw: Der Kommando-Modus heisst nicht umsonst korrekterweise Normal-Modus. Je erfahrener du mit dem vi bist, desto mehr Zeit wirst du in diesem Modus verbringen (wenn du nicht gerade im ex-Modus arbeitest). ;-)
Use ed once in a while!

Benutzeravatar
MSfree
Beiträge: 10721
Registriert: 25.09.2007 19:59:30

Re: vim - Cursor zeilenunabhängig bewegen

Beitrag von MSfree » 18.10.2017 12:10:08

Mit den Tasten "h", "j", "k" und "l" kann man den Cursor nach links, hoch, runter und rechts bewegen. Man kann jedem Befehl im vim auch eine Zahl voranstellen. So bewegt sich der Cursor um 50 Zeichen nach rechts, wenn man "50l" eingibt.

Mit "w" kann man auch wortweise nach rechts springen und mit "50w" geht es 50 Wörter nach rechts.

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: vim - Cursor zeilenunabhängig bewegen

Beitrag von Exxter » 18.10.2017 13:20:17

Hallo,

danke für eure Antworten. Ist aber nicht das was ich suche. Für h,j,k,l müsste ich erst aus dem Einfügen-Modus raus.
Habe gerade mal nano gestartet, dort ist es so, dass ich mich mit den Pfeiltasten von * zu * bewegen kann:

aaaaa bbbb*bb ccccccENTER
ddddd eeee*ee ffffffff

Also wärend man im Einfügen-Modus ist. Kann man die Pfeiltasten nicht auch im vim so belegen?

Gvim ist keine Option.

Liffi
Beiträge: 2306
Registriert: 02.10.2004 01:33:05

Re: vim - Cursor zeilenunabhängig bewegen

Beitrag von Liffi » 18.10.2017 13:29:46

Exxter hat geschrieben: ↑ zum Beitrag ↑
18.10.2017 13:20:17
Hallo,

danke für eure Antworten. Ist aber nicht das was ich suche. Für h,j,k,l müsste ich erst aus dem Einfügen-Modus raus.
Habe gerade mal nano gestartet, dort ist es so, dass ich mich mit den Pfeiltasten von * zu * bewegen kann:

aaaaa bbbb*bb ccccccENTER
ddddd eeee*ee ffffffff

Also wärend man im Einfügen-Modus ist. Kann man die Pfeiltasten nicht auch im vim so belegen?

Gvim ist keine Option.
In er vimrc könnte folgendes helfen:

Code: Alles auswählen

inoremap <buffer> <silent> <Up>   <C-o>gk
inoremap <buffer> <silent> <Down> <C-o>gj
inoremap <buffer> <silent> <Home> <C-o>g<Home>
inoremap <buffer> <silent> <End>  <C-o>g<End>

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: vim - Cursor zeilenunabhängig bewegen

Beitrag von Meillo » 18.10.2017 13:49:41

Exxter hat geschrieben: ↑ zum Beitrag ↑
18.10.2017 13:20:17
Habe gerade mal nano gestartet, dort ist es so, dass ich mich mit den Pfeiltasten von * zu * bewegen kann:

aaaaa bbbb*bb ccccccENTER
ddddd eeee*ee ffffffff

Also wärend man im Einfügen-Modus ist. Kann man die Pfeiltasten nicht auch im vim so belegen?
Wenn da wirklich ein ENTER (d.h. Newline) ist, dann sollten die Pfeiltasten automatisch so funktionieren wie von dir gewuenscht. Wenn es sich aber um lange Zeilen handelt (wie du in deinem Eingangspost geschrieben hast), dann musst du das Mapping der Pfeiltasten im Einfuegemodus aendern, dass sie nicht die Befehle j und k sondern gj und gk ausfuehren. Evtl. geht das so wie Liffi beschreibt, ich kann das nur nicht sagen, weil ich in dieser Sache keine Erfahrung habe.

Falls der Vorschlag von Liffi nicht funktioniert, wuerde ich auch mal im Web suchen. Dein Problem haben sicher auch andere. Oft findet man fuer derartiges Loesungen in Vim-FAQs.
Use ed once in a while!

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: vim - Cursor zeilenunabhängig bewegen

Beitrag von Exxter » 18.10.2017 13:53:05

Liffi's Code hat funktioniert, vielen vielen Dank euch!
Zuletzt geändert von Exxter am 18.10.2017 14:02:53, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: vim - Cursor zeilenunabhängig bewegen

Beitrag von Meillo » 18.10.2017 14:25:01

Folgendes funktioniert bei mir:

Code: Alles auswählen

inoremap <Up> <C-o>gk
inoremap <Down> <C-o>gj
(<C-o> bedeutet Ctrl-o, was temporaer den Modus wechselt. Es wird also aus dem Insert-Mode temporaer in den Normal-Mode gewechselt, dann die logische Zeile hoch/runter gegangen und zum Insert-Mode zurueckgekehrt.)


Edit: Ach, Liffis Vorschlag hat doch funktioniert ... dann ist's ja gut.
Use ed once in a while!

Exxter
Beiträge: 383
Registriert: 10.01.2003 00:15:15
Lizenz eigener Beiträge: GNU General Public License

Re: vim - Cursor zeilenunabhängig bewegen

Beitrag von Exxter » 18.10.2017 14:59:03

Danke dir für deine Mühe! :THX:

Antworten