Die automatische Vervollständigung des Dateipfads funktioniert nach "vim" im Terminal nicht

1

Schritte zum Reproduzieren

git clone https://github.com/MichinariNukazawa/vecterion_vge.git
cd vecterion_vge
  1. Eingang vim include/ tab
  2. Eingang vim include/et_co tab

Was ich erwartet hatte

  1. Dateiliste in anzeigen include/
  2. Dateipfad automatisch vervollständigen vim include/et_color_panel.h

Was ich stattdessen gesehen habe

Beide 1. und 2. funktionieren nicht.

Andere

Beides ls include/ tabund ls include/et_co tab arbeiten.

Die Eingabe vim vecterion_vge/include/et_co tabim übergeordneten Verzeichnis (Ausgangsverzeichnis) funktioniert.

Wie kann ich das beheben?

michinari nukazawa
quelle
Funktioniert gut für mich in Xubuntu 16.04 in Zsh, funktioniert aber nicht in Bash.
Melebius
Ich benutze in Ubuntu 16.04 in Bash.
michinari nukazawa
Addieren complete -p vimSie bitte die Ausgabe von .
Muru
Ausgabe ist complete -F _filedir_xspec vim.
michinari nukazawa

Antworten:

0

Möglicherweise haben Sie die mit vim verbundenen Fertigstellungsspezifikationen deaktiviert.

complete -p vim

Und überprüfe die Ausgabe:

complete -F _filedir_xspec vim

Wenn dies in etwa der vorherigen Zeile entspricht, führen Sie den folgenden Befehl aus:

complete -r vim

Im Allgemeinen und ohne direkten Bezug zu vimdiesen Beispielen können Sie folgende Änderungen für Ihren Fall vornehmen:

Erstes Beispiel

Sie können alle aktuellen Abschlussroutinen auflisten, die für Ihren Benutzer aktiv sind, complete -poder alle in Ihrem System enthaltenen Abschlüsse:ls /etc/bash_completion.d/

Die Vervollständigung wird von der Datei /etc/bash_completiongesteuert, und neue Vervollständigungsbefehle können in das Verzeichnis eingefügt werden/etc/bash_completion.d

Sie müssen die intelligente Vervollständigung aktivieren und Ihre Datei /etc/bash.bashrc bearbeiten. Ich denke du hast da die cdTab Vervollständigung. Kommentieren Sie die folgenden Zeilen in jedem Fall aus, indem Sie das # am Anfang der Zeilen entfernen:

#if [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
#fi

Wie Sie sehen, hängt alles von den Informationen in der bash_completion.dDatei ab.

Wenn Sie sogar die Bash-Smart-Vervollständigung auf Ihre erweitern können vimoder aptbearbeiten /etc/bash_completionund müssen/etc/bash_completion.d 

Anderes Beispiel

Wenn Sie keinen Zugriff auf das Bearbeiten von Dateien oder das Hinzufügen von Archiven haben /etc. Sie können lokale Vervollständigung hinzufügen, zum Beispiel, um wp-clidie Vervollständigungsdefinition herunterzuladen und umzubenennen, um den Befehl auszublenden:

wget https://github.com/wp-cli/wp-cli/raw/master/utils/wp-completion.bash
rename wp-completion.bash .wp-completion.bash

Bearbeiten Sie nun Ihre .bash_profileVerwendung nano .bash_profileoder vimfügen Sie Folgendes hinzu:

source /home/tu_usuario_del_host/.wp-completion.bash
manuti
quelle
Danke für deine Antwort. Diese Lösung funktioniert aber nicht.
michinari nukazawa
1. Da es etwas Ähnliches wie die Zeile gab, auf die Sie in /etc/bash.bashrc verwiesen haben, habe ich dies auskommentiert, aber es hat es nicht gelöst. Als weitere Methode habe ich die von Ihnen angegebene Zeile kopiert, sie wurde jedoch nicht gelöst. 2. Es war keine Datei zum Lesen vorhanden /etc/bash_completion. Dies ist, weil Sie darauf hingewiesen /etc /bash_completionund /etc/bash_completion.d?
michinari nukazawa
Es tut mir leid, dass ich falsch verstanden habe. /usr/share/bash-completion/bash_completionexistiert.
michinari nukazawa
Ich bin weg von meinem Linux-Computer, heute Abend versuche ich zu überprüfen, ob alles in Ordnung ist. Ich habe nicht mit diesen Befehlen verwendet. Ich habe die Vervollständigung für nur wp-climit den folgenden Befehlen hinzugefügt : wget github.com/wp-cli/wp-cli/raw/master/utils/wp-completion.bash umbenennen wp-completion.bash .wp-completion.bash Bearbeiten Sie jetzt .bash_profile und nano .bash_profilefügte Folgendes hinzu: source /home/tu_usuario_del_host/.wp-completion.bash
manuti
Ich habe versucht. Hinzufügen von .wp-completion.bashDosis funktioniert nicht.
michinari nukazawa