Wenn Sie vi im Verzeichnis ausführen, werden keine Dateien aufgelistet

7

Dies scheint ein neuer Fehler (Feature?) Zu sein, der sich in Ubuntu 13.10 einschleicht. Wenn ich viin einem Verzeichnis ausführe, werden die Dateien nicht aufgelistet, zu denen ich mit den Pfeiltasten navigieren kann. Es wird nur ein leerer Bildschirm mit der Meldung "Unzulässiger Dateiname" angezeigt.

Jetzt ist es ein Ärger, weil ich zuerst in lsdas Verzeichnis muss, wenn ich nicht weiß, welche Datei ich bearbeiten möchte, und dann den gesamten Dateinamen nach dem Verzeichnis in das Befehlsargument eingeben muss.

Dies geschieht, wenn ich zum vitmp usw. gehe und sogar in meinem Home-Verzeichnis, für das ich Schreibberechtigung habe.

Parag
quelle

Antworten:

6

Das von Ihnen beschriebene Verhalten wird durch einen Fehler in netrw verursacht , dem Plugin, das das Durchsuchen von Dateien behandelt.

Das Aktualisieren auf die neueste Version des Plugins behebt dieses Verhalten.

Laden Sie dazu einfach die neueste Version von netrw herunter , öffnen Sie sie in vim und beziehen Sie sie. Dadurch wird das Plugin in Ihr ~/.vimVerzeichnis extrahiert , wo es vor der fehlerhaften Version des Systems geladen wird.

Laden Sie die Datei herunter:

wget http://www.drchip.org/astronaut/vim/vbafiles/netrw.vba.gz

Öffnen Sie es in vim:

vim netrw.vba.gz

In vim, Quelle es:

:so %

Danach schließen Sie vim. Dann viel Spaß beim Durchsuchen der Verzeichnisse.

Update : Bei einer Box gab es einen Fehler, dass ich das letzte Fenster nicht schließen konnte . Hatte keine Auswirkung auf das Plugin, das danach einwandfrei funktionierte.

2. Update : Diese Version von netrw erwartet eine Version von vim mit Zwischenablagefunktion .

Sie können überprüfen, ob Ihre Version es hat, indem Sie ausführen vim --version. Die Ausgabe wird wahrscheinlich -clipboarddort enthalten sein, was bedeutet, dass die Funktion nicht aktiviert ist.

Um eine Version mit Unterstützung für die Zwischenablage zu kompilieren, installieren Sie eine beliebige Version von vim mit einer grafischen Benutzeroberfläche, die auch Ihre normale vimVersion durch eine Version mit Unterstützung für die Zwischenablage ersetzt . Ich habe vim-gtk als Testfall verwendet.

drc
quelle
DRC, ich bekomme zahlreiche Fehler in rot mit der NachrichtNot an editor command
Parag
Entschuldigung, habe die falsche Datei nach dem Testen mit der richtigen verknüpft. Links in meiner Antwort behoben.
DRC
Ja, ich habe diesen Fehler auch beim Schließen des letzten Fensters erhalten, aber er funktioniert jetzt. Vielen Dank !
Parag
Jetzt habe ich gerade diesen Fehler erhalten: Fehler bei der Verarbeitung der Funktion <SNR> 19_NetrwBrowseChgDir .. <SNR> 19_NetrwOptionRestore: Ungültiger Registername '*' Ich kann vidas Verzeichnis, aber wenn ich die Datei auswähle und die Eingabetaste drücke, erhalte ich den oben genannten Fehler.
Parag
Diese Version von netrw scheint die Fähigkeit zur Zwischenablage in vim zu erwarten . Es wurde ein Absatz darüber hinzugefügt.
DRC
2

Ich habe versucht, die von drc angegebenen Schritte zu befolgen, habe jedoch seltsame Fehler erhalten (möglicherweise aufgrund mangelnder Unterstützung der Zwischenablage).

Das Folgende funktionierte für mich in Ubuntu 13.10 Docker-Image mit nur einer Standardversion von Vim ohne Unterstützung der Zwischenablage:

vim /etc   # blank screen

wget http://www.vim.org/scripts/download_script.php?src_id=21427 -O netrw.vba.gz

# install the vimball
# may throw error E444, but this can seemingly can be ignored
vim netrw.vba.gz +"so %" +q  

vim /etc  # works fine

Beachten Sie, dass ich nur eine etwas ältere Version des netrw-Plugins verwendet habe, die am 04.02.2014 auf vim.org hochgeladen wurde.

Dergachev
quelle
Diese Methode führt dazu, dass Fehlermeldungen angezeigt werden.
Parag
Hmmm. Dies behebt die seltsamen Fehler und wird fehlerfrei ausgeführt. Ich kann jedoch immer noch keine Verzeichnisliste abrufen.
hek2mgl
hek2mgl, habe gerade in dieser Vagrant VM nachgesehen und mein Fix scheint gut zu funktionieren. gist.github.com/dergachev/eaf0e52bd9ebd69e4953
Dergachev
OK, beim zweiten Gedanken schien die Version von netrw, mit der ich verlinkt habe, neue Fehler in Vagrant zu verursachen. Diese Version von netrw.vba.gz hier scheint zu funktionieren verbunden: groups.google.com/d/msg/vim_dev/iEiInCavWKc/8lvamqaVXOYJ
Dergachev