2017-11-14 4 views
0

Mit Vim Version: 7.4Wenn Sie eine globale Variable in einem vim-Plugin (Python-Modus) ändern und neu laden, entspricht das nicht nur dem Laden der .vimrc beim Start?

In dieser Zeile der Dokumentation Python-Modus: https://github.com/python-mode/python-mode/blob/01c3131343aaa3c76f8cb656b5e9f54ac90ca04b/doc/pymode.txt#L234

es sagt, dass ich Einschalt-kann die Variable (g:pymode_run)

let g:pymode_run=1 verwenden,

um meine Python - Datei mit ":PymodeRun" zu starten oder über '<leader>r'

zu verwenden. Wenn es keine gibt Änderung meiner vimrc, die Standardeinstellung ist:

let g:pymode_run=1 

Wenn jedoch die Standardeinstellung in Ihre vimrc ist

let g:pymode_run=0,

Sie Ihre .vimrc laden und versuchen Änderung dann die Variable let pymode_run=1 oder let g:pymode_run=1 mit (beide dies entspricht, wie wir mit der globalen variablen hier handelt),

:PymodeRun funktioniert nicht.

Wenn Sie ":so ~/.vimrc" nach der Änderung let g:pymode_run=1 tun, funktioniert es auch nicht.

Die einzige Lösung, die ich gefunden habe, ist, in Ihrem ~/.vimrc zu "" zu wechseln, VIM herunterzufahren und vim neu zu starten. Dann funktioniert es wie erwartet.

Da pymode_run ist eine Variable, die anzeigt, ob :PymodeRun bestimmt laufen soll oder nicht, sollte die Variable pymode_run von 0 auf 1 in der aktuellen VIM-Sitzung nicht ändern, ermöglicht auch :PymodeRun läuft, withough VIM neu zu laden?

Antwort

0

g:pymode_run scheint here verwendet werden, was bedeutet, dass der Variable, wenn der Befehl :PymodeRun (und verwandte Bindungen) oder nicht in erster Linie festgelegt werden sollen, um zu entscheiden, verwendet wird. Mit anderen Worten, es wird beim Aufruf von :PymodeRun nicht überprüft, aber beim Bearbeiten von Python-Dateien überprüft. Aus diesem Grund funktioniert das Einstellen des Wertes nicht. Dies liegt wahrscheinlich daran, dass das Ändern der Option während der Bearbeitung nicht erwartet wird (ich sehe auch nicht viele Gründe).

Da diese Variable in ftplugin überprüft wird, glaube ich, dass das erneute Laden der Datei (:ed %) ausreicht, damit let g:pymode_run=1 wirksam wird.

Verwandte Themen