Den Editor von Vim Psql haben

3065
Léo Léopold Hertz 준영

Ich habe eine Fresh Ubuntu-Installation. Ich habe keine persönlichen Punktdateien aktiv.

Ich \e file.sqlführe erfolglos in Psql aus, wenn ich Folgendes in meiner .bashrc habe, da Nano statt Vim geöffnet wird

export VISUAL=/usr/bin/vim export EDITOR=/usr/bin/vim export PSQL_EDITOR=/usr/bin/vim  

Ich führe den gleichen Befehl aus, wenn ich anstelle von PATH / vim in .bashrc für die obigen drei Befehle vim habe.

Ich bekomme vimwenn ich cat $EDITORzum Beispiel.

Das Problem ist bei Umgebungsvariablen wahrscheinlich. Ich bin mir jedoch nicht sicher wo.

Wie können Sie Vim als Psql-Editor haben?

6

3 Antworten auf die Frage

4
jtb

Ich bin mir nicht sicher psql, aber wenn etwas vermasselt wird $EDITOR, wird es wahrscheinlich auf den Systemstandard zurückgreifen, der durch den /usr/bin/editorSymlink definiert wird, was nanostandardmäßig der Fall ist . Wenn Sie über Administratorzugriff verfügen, versuchen Sie es

sudo update-alternatives --config editor 

und dort auswählen vim. Ich denke, Programme sollten immer noch respektieren, $EDITORwenn sie definiert sind, aber dies wird den Fallback definieren. Es ist die einzige Einstellung, die ich verwende, und es funktioniert gut.

1
jtimberman

Bearbeiten Sie die Datei ~/.selected_editoroder führen Sie sie aus select-editor. Wählen Sie /usr/bin/vim-basicin beiden Fällen /usr/bin/vimunter Ubuntu einen Symlink zu /etc/alternatives/vim, der zu einem Symlink gehört /usr/bin/vim.basic.

Hier ist der Inhalt der Datei für den Postgres-Benutzer eines Ubuntu-Systems:

postgres@ubuntu904test:~$ cat .selected_editor # Generated by /usr/bin/select-editor SELECTED_EDITOR="/usr/bin/vim.basic" 
Ah, wenn Postgres als anderer Benutzer läuft, dann würde das auch das Problem mit `~ / .bashrc` erklären. Anscheinend ist SELECTED_EDITOR eine weitere Möglichkeit, einen Editor pro Benutzer auszuwählen, mit Priorität zwischen `EDITOR` und den / etc / alternatives-Links (obwohl meine alte Ubuntu 8.04-Installation dies nicht berücksichtigt). Wenn Sie den Editor systemweit einstellen möchten, verwenden Sie den Befehl alternatives, den ich unten angegeben habe. jtb vor 15 Jahren 1
Ich nehme an, Debian hat wirklich gute Gründe für Dinge wie "Selected Editor", "Update-Alternativen" und all diese Symlinks, die sich um das Dateisystem herumjagen, aber ich erinnere mich, als Unix ein einfaches System bedeutete, in dem man den Kopf herumrappeln konnte ... Jetzt Wenn du mich entschuldigst, muss ich ein paar Kinder von meinem Rasen jagen. :) Richard Hoskins vor 15 Jahren 1
Ich führe den Befehl "select-editor" aus. Emacs ist jetzt jedoch aus unbekannten Gründen mein Standardeditor, obwohl ich Vim ausgewählt habe. Wenn ich den Befehl erneut ausführe, zeigt die Liste, dass mein Standardeditor Nano ist. Ich führe den Befehl mit `sudo` erfolglos aus. Dies deutet darauf hin, dass es auch einige Dateien gibt, die die Editor-Einstellungen in Ubuntu bearbeiten. Léo Léopold Hertz 준영 vor 15 Jahren 0
0
tga

Ich habe alle Vorschläge hier ausprobiert und der Editor hat sich nicht in VIM geändert. Obwohl die Auswahl richtig getroffen und die Dateien korrekt aktualisiert wurden, war der Editor weiterhin Nano.

Sudo Update-Alternativen - Konfigurationseditor

Bearbeiten Sie die Datei ~ / .selected_editor

Schließlich habe ich die Datei ~ / .selected_editor gelöscht und \ ef noch einmal ausgeführt. Da die .selected_editor-Datei nicht vorhanden ist, konnte sie so ausgeführt werden, als würde sie die Datei zum ersten Mal erstellen. Und dann könnte ich "2" für "vim.basic" auswählen. Die neue Datei wurde erstellt und VIM wurde zu meinem Editor.

postgres = # \ ef

Wählen Sie einen Editor aus. Führen Sie 'select-editor' aus, um später Änderungen vorzunehmen. 1. / bin / nano <---- am einfachsten 2. /usr/bin/vim.basic 3. /usr/bin/vim.tiny

Willkommen bei Superuser! Bitte betrachten Sie Ihr Ding das nächste Mal als Kommentar, da es keine Antwort ist. Sehen Sie bitte die Antwort von jtb, die hier die akzeptierte Antwort ist. Bitte überlegen Sie auch, einen neuen Thread mit einem Link hier zu senden. Léo Léopold Hertz 준영 vor 8 Jahren 0