Durch das Drücken von Pfeiltasten fügen Sie Zeichen in den vi Editor ein

139

Wenn ich im Einfügen-Modus im vi editor versuchte, die Pfeiltasten zu verwenden, werden folgende Zeichen in den Editor eingefügt:

  • für Ich bekomme B,
  • für Ich bekomme A,
  • für Ich bekomme D,
  • für Ich bekomme C.

Bitte helfen Sie mir bei der Lösung dieses Problems.

    
bvb 05.10.2013, 07:04

11 Antworten

174

Wenn Sie noch keine .vimrc -Datei in Ihrem Home-Verzeichnis haben, erstellen Sie eine mit folgendem Befehl:

vim ~/.vimrc

Fügen Sie diese Zeile am Anfang der Datei hinzu:

set nocompatible

Speichern Sie die Datei und das sollte das Problem für Sie beheben. :)

    
Gaurav Manchanda 05.10.2013 09:23
43

Installiere vim - & gt; Dies wird das Problem beheben.

sudo apt-get install vim

Es gibt viele gute vim / vi Tutorials auf Youtube oder im Web. Für Ihr Problem siehe hier

Fahren Sie dann wie gewohnt mit Dateien fort:

vi desired-file
    
sthysel 21.11.2012 09:03
26

Mit vi , wenn Sie auf i klicken, aktivieren Sie den Befehl Einfügen .
Mit diesem Befehl können Sie Text in Ihre Datei einfügen.
Und richtig, beim Klicken:

  • auf wird ein "A" eingefügt,
  • auf wird ein "B" eingefügt,
  • ...

Till Sie deaktivieren diesen Befehl.
Um einen Befehl in vi zu deaktivieren, klicken Sie einfach auf Esc
Und dann bekommst du wieder normalen Gebrauch von deinen Pfeiltasten:

  • um nach oben zu gehen,
  • heruntergehen,
  • ...

FYI, hier sind einige vi Befehle:
Von dieser Quelle .

:x Geben Sie quit vi zurück und schreiben Sie die geänderte Datei in die Datei, die im ursprünglichen Aufruf genannt wurde. :wq Return quit vi und schreibt eine modifizierte Datei in eine Datei, die im ursprünglichen Aufruf benannt wurde. :q Zurück beenden (oder beenden) vi
:q! Zurück quit vi , obwohl die letzten Änderungen für diesen vi-Aufruf nicht gespeichert wurden

bewegt den Cursor eine Zeile nach unten und bewegt den Cursor eine Zeile nach oben < br> move Cursor nach links ein Zeichen
move Cursor nach rechts ein Zeichen
sub>

u rückgängig machen was auch immer Sie gerade getan haben; ein einfacher Toggle
. wiederholen was auch immer du gerade gemacht hast

i Fügen Sie Text vor dem Cursor ein, bis Esc auf I Text am Anfang des aktuellen Treffers trifft Zeile, bis Esc Treffer an % a anfügen Text nach dem Cursor, bis Esc Treffer an A anhängen Text bis zum Ende der aktuellen Zeile, bis Esc auf o öffnen trifft und Text in eine neue Zeile unterhalb der aktuellen Zeile einfügt, bis Esc trifft
O auf und fügt Text in eine neue Zeile oberhalb der aktuellen Zeile ein, bis Esc auf trifft p>

r ersetzt einzelnes Zeichen unter dem Cursor (nein Esc benötigt)
cw ändert das aktuelle Wort mit neuem Text, beginnend mit dem Zeichen unter dem Cursor, bis Esc Treffer | x löschen einzelnes Zeichen unter dem Cursor
Nx löschen N Zeichen, beginnend mit dem Zeichen unter dem Cursor
dw lösch das einzelne Wort beginnend mit dem Zeichen unter dem Cursor
C ändern (ersetzen) die Zeichen in der aktuellen Zeile, bis Esc | D löschen den Rest der Zeile beginnend mit der aktuellen Cursorposition

dd löschen gesamte aktuelle Zeile
Ndd löschen N Zeilen, beginnend mit der aktuellen Zeile; zB löscht 5dd 5 Zeilen
yy kopiert die aktuelle Zeile in den Puffer (yank, cut)
Nyy kopiert (jagt, schneidet) die nächsten N Zeilen, einschließlich der aktuellen Zeile, in den Puffer
p einfügen die Zeile (n) im Puffer in den Text nach der aktuellen Zeile

0 (null) Bewegen Cursor zum Anfang der aktuellen Zeile (der mit dem Cursor)
$ Verschieben Cursor zum Ende der aktuellen Zeile
w bewegen Cursor zum Anfang des nächsten Wortes
b bewegen Cursor zurück zum Anfang des vorhergehenden Wortes
:0 Zurück oder 1G Verschieben Cursor in die erste Zeile der Datei
:n Zurück oder nG move Cursor zu Zeile n
:$ Zurück oder G verschiebe den Cursor zur letzten Zeile in der Datei

/string Suche weiterleiten nach Vorkommen von String im Text
?string Suche rückwärts für Vorkommen von String im Text
n Verschieben zum nächsten Vorkommen des Suchbegriffs
N Verschieben zum nächsten Vorkommen des Suchbegriffs in entgegengesetzter Richtung

    
Boris 05.10.2013 08:52
15

Um das Drucken von Buchstaben beim Drücken von Pfeilen im Bearbeitungsmodus zu deaktivieren, können Sie Folgendes tun:

vi $HOME/.exrc 

(Datei erstellen, wenn sie nicht existiert) und fügen Sie dann die Zeile set nocompatible hinzu und speichern Sie sie.

    
Aniket Thakur 08.08.2015 14:46
11

Im vi-Editor gibt es drei Modi:

  • Befehlsmodus
  • Eingabemodus
  • Standardmodus.

Wenn Sie eine Datei öffnen, befinden Sie sich im Standardmodus. Wenn Sie jetzt zu einer bestimmten Position in Ihrem Text gehen möchten, verwenden Sie einfach die Pfeiltasten oder verwenden Sie h , j , k , l Schlüssel. Beachten Sie, dass dies nur funktionieren würde, wenn Sie i (oder einen anderen Eingabemodus, der den Befehl eingibt, wie a , A , I) nicht gedrückt haben ).

Der Grund für "B" könnte sein, dass die Pfeiltasten im Eingabemodus nicht als Pfeiltasten funktionieren. Drücken Sie einfach Esc , um jederzeit in den Standardmodus zu wechseln. Um in den Eingabemodus zu wechseln, drücken Sie i oder a , und navigieren Sie mit der Taste i und verwenden Sie die Pfeiltasten oder h , j , k , 1

    
ps_cool 21.11.2012 08:14
6

Ich hatte genau das gleiche Problem, aber nicht nur auf meinem lokalen Rechner, sondern auch auf Verbindungen via Putty auf einem Sles-Rechner in einer Win7 VM über einen Citrix-Empfänger. Sowohl der lokale Host als auch die entfernten Hosts zeigen nach einer Neuinstallation von Ubuntu genau das gleiche Problem.

Nachdem ich das herausgefunden habe

$ localectl list-keymaps 
Couldn't find any console keymaps.

Verursacht dieses seltsame VI-Verhalten Ich habe das Paket console-data installiert, welches das Problem löst!

sudo apt-get install console-data
    
kitingChris 18.01.2017 11:53
3

Alle Erklärungen sind etwas bizarr. Ich habe vi aber nicht vim installiert.

Überprüfung der Alternativen: /etc/alternatives/vi & amp; rightarrow; /usr/bin/vim.tiny

So vi ist vim.tiny und es verwendet /etc/vim/vimrc.tiny .

Und in vimrc.tiny findest du die folgende Zeile:

set compatible

Was fast das Einzige in dieser Datei ist. Beachten Sie, dass in /etc/vim/vimrc nocompatible verwendet wird.

Installieren Sie entweder vim, oder ändern Sie die vimrc.tiny -Datei, oder erstellen Sie Ihre eigene ~/.vimrc , die folgende Zeile enthalten sollte:

set nocompatible
    
Gunstick 10.01.2017 23:11
1

Der traditionelle vi-Editor erkennt die Pfeiltasten (... afair) nicht. Es gibt zwei Lösungen:

  1. benutze vim anstelle von vi
  2. Verwenden Sie h, j, k und l, um zu navigieren (Sie können nicht navigieren, während Sie auf dem traditionellen vi btw arbeiten.)
MadMike 05.10.2013 07:51
1

Hinweis:

Es gibt gute Informationen in den anderen Posts, aber keiner der Posts versuchte zu erklären, warum dieses Verhalten passierte. Viele Menschen werden in Zukunft darüber stolpern. Könnten Sie diese Frage auch als gelöst markieren, da Ihnen wahrscheinlich einer der vorherigen Beiträge geholfen hat?

Hier ist eine Erklärung :

Vi ist ein Editor, der schon sehr lange existiert und auf Unix-Systeme zurückgeht. Es ist ein gutes Werkzeug, aber es wurde wiederholt und jetzt ist es besser. Vim wurde später geschrieben und ist diese Iteration. Leute bezeichnen vi gewöhnlich als 'vim-minimal' und vim ist eine 'verbesserte' Version von vi. Man kann es sich so vorstellen: vi ist der Kern und vim dehnt sich aus.

Wahrscheinlich, wie Sie das Verhalten entdeckt haben :

Damit Sie dieses Problem erkannt haben, haben Sie " i " gedrückt, um den Modus Einfügen aufzurufen, und dann mit den Pfeiltasten in der richtigen Zeile navigiert und bearbeitet Punkt. Dies hat Ihr unerwartetes Char-Problem verursacht.

Lösung 1 oder 2

1) vi someFile Wenn Sie vi verwenden, gehen Sie zuerst zum Bearbeitungspunkt und dann in den Einfügemodus.

2) vim someFile Verwenden Sie einfach vim von Anfang an.

Ich kann nicht genug betonen, um das Handbuch zu lesen (man-Seiten) oder -h zu benutzen. Sobald Sie sich an die Muster in der Shell angepasst haben, werden die Man Pages zu Ihrem besten Freund. Beispiel: man vi oder man vim

Überprüfen Sie, ob Vim installiert ist .

Öffnen Sie ein Konsolenfenster und führen Sie Folgendes aus:

dpkg --list | grep vim

Wenn Sie etwas Ähnliches bekommen, können Sie einfach anfangen, vim zu benutzen.

~ $ dpkg --list | grep vim
ii  vim         2:7.4.052-1ubuntu3  amd64  Vi IMproved - enhanced vi editor
ii  vim-common  2:7.4.052-1ubuntu3  amd64  Vi IMproved - Common files
ii  vim-runtime 2:7.4.052-1ubuntu3  all    Vi IMproved - Runtime files
ii  vim-tiny    2:7.4.052-1ubuntu3  amd64  Vi IMproved - enhanced vi editor - compact version

Wenn die Eingabeaufforderung mit nichts zurückkehrt, ist vim is nicht installiert. Verwenden Sie die folgenden Beispiele, um Ihre Repositorys zu aktualisieren, und installieren Sie dann vim.

sudo apt-get update
sudo apt-get install vim

Wenn Sie vi oder vim nur benutzen, wenn Sie im Internet suchen, wie Sie etwas reparieren können und Sie vergessen haben, vim einzugeben, gibt es eine Möglichkeit, das Problem für die Zukunft zu beheben. Ich warne dich, darauf zu achten. Sie können einen Alias ​​verwenden, um vi mit einem Verweis auf vim zu überschreiben, so dass egal was Sie in der seltenen Zukunft eingeben, Sie vim ohne "oops!" Moment. Sie können einen Alias ​​immer später löschen.

Geben Sie vim .bashrc ein. Gehe in die leere Zeile mit nur ~ (oder zu jeder anderen Zeile, die mit alias beginnt (also zusammen gruppiert ist) und drücke dann die i Taste, um -insert- Geben Sie in einer eigenen Zeile Folgendes ein:

alias vi='vim'

Drücken Sie Esc und geben Sie dann :wq ein. Jetzt müssen Sie die Datei neu laden. Type source .bashrc Jede andere Shell, die nach diesen Änderungen geöffnet wird, lädt automatisch die .bashrc-Datei.

    
D75 30.10.2016 05:20
1

Dies kann auch an der TERM -Variable liegen; setze es zum Beispiel so:

 export TERM=xterm
    
Jasper Nuyens 07.07.2017 15:54
1

Auf einigen Systemen ist die Option nocompatible nicht verfügbar, oder das Problem wird möglicherweise nicht behoben, wenn ein Plug-In die Funktionalität des Pfeilschlüssels unterbricht. Hier ist ein Workaround ...

Bearbeiten Sie die Datei .exrc so, dass sie die folgenden Zeilen enthält:

map! ^[OA ^[ka
map! ^[OB ^[ja
map! ^[OC ^[la
map! ^[OD ^[ha

Wenn das Problem nur im normalen Modus besteht, können Sie wie folgt in nmap wechseln und das folgende a überspringen:

nmap! ^[OA ^[k

und so weiter.

Hier sind die Tastenkombinationen, die benötigt werden, um sie zu erzeugen (nur die erste):

map! <CTRL-V><Up-Arrow> <CTRL-V><ESC>ka

Dies wird aus dem Bearbeitungsmodus entfernt, bewegt sich in die gewünschte Richtung und kehrt in den Bearbeitungsmodus zurück. Dies wird benötigt, um Vi zu überwinden, indem die Escape-Sequenz als eine Sequenz von Literal & lt; ESC & gt; O & lt; A & gt; usw. gelesen wird

Quelle: Pfandrecht

    
Dominic Comtois 08.06.2017 04:33

Tags und Links