Passen Sie das andere Ende einer visuellen Auswahl an

14

Ich denke, dies würde es der visuellen Auswahlfunktion von vim ermöglichen, die Effizienz selbst der Maus zu übertreffen, indem die Möglichkeit bereitgestellt wird, den aktuellen Endpunkt der Auswahl zu "wechseln":

Illustriert (Das |soll den Cursor darstellen (Vim lässt es auf der linken Seite des Zeichens arbeiten, auf dem es sich befindet) und [text]stellt ausgewählten Text dar. Stellen Sie sich einfach vor, dass sie eine Breite von Null einnehmen. Der Hintergrund des Zwischenraums [ ]sieht grau aus und das Zeichen sofort nach dem |ist grün):

Beginnen mit

Some |text here
Some second line of text
Some more text in the third line 

Drücken Sie v2j; Beachten Sie, dass das mZeichen in der Auswahl enthalten ist (es wird jetzt vom Cursor hervorgehoben):

Some [text here
Some second line of text
Some |m]ore text in the third line 

Drücken Sie 10l:

Some [text here
Some second line of text
Some more text |i]n the third line 

An diesem Punkt könnte ich entscheiden, dass ich mit der Auswahl an einem anderen Ort beginnen möchte . zB einschließlich der "Some"in der ersten Zeile.

Ich habe keine Wahl in einem typischen Editor / IDE. Ich müsste wahrscheinlich meine Hand zur Maus bewegen, es ist normalerweise zu schmerzhaft, Text mit herkömmlichen Methoden auszuwählen. Die Verwendung von Word Hopping via Ctrlund Page-Up / Down hilft etwas, aber egal was passiert, ich muss mich verpflichten zu einem meiner Endpunkte der Auswahl, bevor ich mit der Auswahl beginne .

In Vim würde ich mich über die Fähigkeit freuen, meinen aktuellen Zustand zu erfassen, indem ich auf eine mysteriöse Bindung treffe:

Some [|text here
Some second line of text
Some more text i]n the third line 

Dann kann ich einfach drücken ^oder <Home>(beide tun dasselbe in diesem Fall, wenn es kein führendes Leerzeichen gibt), um daraus etwas zu machen

[|Some text here
Some second line of text
Some more text i]n the third line 

Angenommen, ich ändere meine Meinung erneut , ich möchte das andere Ende anpassen!

[Some text here
Some second line of text
Some more text |i]n the third line 

Treffer e:

[Some text here
Some second line of text
Some more text i|n] the third line 

Schön! Mit dieser Auswahl kann ich jetzt machen, was ich will.

Was ist das für ein Rätsel?

Noch potenziell effizienter wäre eine Reihe alternativer Bindungen für einige der am häufigsten verwendeten Bewegungsbefehle an eine andere Tastenreihe, die (im visuellen Modus) immer das andere Ende der Auswahl verschieben würden. Wenn also in diesem Auswahlmodus für den visuellen Modus die Bewegungstasten für das andere Ende der Auswahl auf "yuio" eingestellt wären (wahrscheinlich keine gute Wahl, da wir sie irgendwie brauchen, yaber nur mit mir aushalten ), hätten wir tippen können

v2j10l5ye

eher, als

v2j10lX^Xe

Hey weißt du was, das ist nicht mal eine große Verbesserung. Gib mir einfach diese X-Funktion. :) :)

Die perfekten Antworten, die ich suche:

  • Hey, schau auf :help some_awesome_vim_feature_that_just_does_this
  • Hey, schau es dir an https://github.com/awesome_user/vim_plugin_that_does_this
  • Hey, schau es dir an :help vimscript_functions_that_allow_mutation_of_visual_selections

Ich bin ziemlich neu in dieser Faszination für Vim, daher bin ich sehr grün, wenn es um Vimscript geht, und ehrlich gesagt möchte ich mich von dem Versuch fernhalten, noch eine andere Sprache zu lernen , also werde ich hoffentlich nicht gezwungen sein, dies als zu bauen ein Plugin.

Steven Lu
quelle
Okay. Jetzt weiß ich nicht, was hier los ist (die Frage wurde auf mysteriöse Weise von SO nach SU verschoben), aber ich habe dies ursprünglich auf SO gepostet und würde es wirklich vorziehen, dort zu bleiben. Bei allem Respekt gegenüber Nicht-Programmierern könnten sich nur Programmierer jemals so sehr um die Textbearbeitung kümmern . Natürlich könnten alle Benutzer von vim davon profitieren, zu erfahren, wie dies funktionieren könnte. Ich denke, es würde mehr Augäpfel und eine bessere Chance bekommen, dort beantwortet zu werden, wo sich die Plugin-Entwickler befinden.
Steven Lu
Lesen Sie manchmal das :help? :help visual-modeenthält alle Informationen, die Sie möglicherweise zum visuellen Modus benötigen, einschließlich o.
Romainl
Ich lese es manchmal, aber es hätte wahrscheinlich ungefähr die gleiche Zeit dauern können, meine Gedanken aufzuschreiben. Es ist definitiv eine Aufgabe, als zu erraten, was die Hilfezeichenfolge ist.
Steven Lu
Lernen ist besser als raten. Die Antwort von Heptite hat Ihnen zwei Dinge beigebracht , können Sie sie nennen?
Romainl
Ja, ich meine, es gibt viele Dinge zu lernen, aber ich habe bereits vergessen, was OKapital O macht, aber ich werde mich erinnern o. Das zweite, worauf Sie sich beziehen, ist wahrscheinlich, :helpmehr zu verwenden. Und ich habe es mehr benutzt als zu Beginn.
Steven Lu

Antworten:

48

Ich bin mir nicht sicher, ob ich wirklich verstehe, was Sie wollen, aber vielleicht ist es das Folgende:

:help v_o

Während Text visuell hervorgehoben wird, können Sie im Grunde drücken ound er springt zum anderen "Ende" des visuellen Bereichs, ohne ihn zu ändern.

Heptit
quelle
2
Heiliger Mist, ja !!! Das ist sogar noch besser als ich gehofft hatte, es ist bereits an einen einzelnen Schlüssel gebunden , also ist Xoben tatsächlicho
Steven Lu
1
Erlauben Sie mir auch , dass die rechte Maustaste klicken , darauf hinzuweisen, (wenn Sie Ihr Endgerät konfiguriert es durch zu Vim passieren) wird auf intelligente Weise lassen Sie es einstellen das nächste Ende der aktuellen visuellen Auswahl an , wo sich der Cursor befindet. Dies macht es zu einer viel weniger schmerzauslösenden Methode zum Anpassen des Auswahlbereichs, da die Position des gegenüberliegenden Endes der Auswahl nicht weggeworfen wird.
Steven Lu
@StevenLu: Es wird sowieso nicht weggeworfen. Sie können oerneut tippen und zurückgehen.
Heptite
@StevenLu Dies sollte wahrscheinlich die akzeptierte Antwort sein, da sie nicht nur Ihr Problem gelöst hat, eine Menge Upvotes hat, auch genau das passiert ist, was ich beim ersten Google-Ergebnis benötigt habe, und tatsächlich die einzige Antwort ist, die von irgendjemandem eingereicht wurde ...
Kingdon
Ja, ich glaube, ich habe es nie akzeptiert, weil es so schnell veröffentlicht wurde, dass ich es zu diesem Zeitpunkt noch nicht durfte, und ich benutze diese Vim-Funktion seit fast fünf Jahren glücklich, ohne mich daran erinnern zu müssen, was das ist Schlüssel ist, wie es super leicht zu merken ist.
Steven Lu