.vimrc verwendet den Dateinamen, der gerade bearbeitet wird

2

Ich habe ein Plugin, für VIMdas im Grunde genommen eine Schnittstelle für mein SVN( vcscommand.vim ) zur Verfügung steht. Und ich habe in meinem vcscommand Plugin Befehle :VCSUpdateund zugeordnet . Alles ist perfekt, bis auf eines::VCSCommit.vimrc

Nach dem Aufruf von: VCSCommit schreiben Sie normalerweise einen Kommentar wie folgt:

:VCSCommit I've made some minor changes to this file

Im Deployment-System unseres Unternehmens wird nicht hervorgehoben, welche Datei festgeschrieben wurde. Daher schreiben wir unsere Kommentare normalerweise so:

:VCSCommit I've made some minor changes to file .vimrc

Im Deployment-System sehen wir all diese Commits, sodass wir feststellen können, welche Datei nach dem Drücken der Schaltfläche "Sync" auf den Produktionsserver hochgeladen werden soll.

Daher frage ich mich, wie ich Folgendes zuordnen soll: VCSCommit, damit der Dateiname als Kommentar hinzugefügt wird. Mein bisheriges Mapping ist:

map <C-q> :VCSCommit

Nach dem Drücken von Strg + Q wird dies :VCSCommitin der unteren Leiste angezeigt, aber ich möchte es sehen :VCSCOmmit my_file_name_that_i_m_editing_now.

Wie mache ich das?

Nemoden
quelle

Antworten:

2

Das sollte es tun.

map <C-q> :VCSCommit <C-R>%

Für mehr sehen Sie

:help c_CTRL-R

BEARBEITEN

%Verwenden Sie Folgendes, um nur den Dateinamen einzufügen, wenn er einen Pfad enthält:

map <C-q> :VCSCommit <C-R>=expand("%:p:t")<CR>

Das :perweitert den vorhergehenden Dateinamen, um den vollständigen Pfad einzuschließen, und :tnimmt das Ende dieses Pfads. Sehen

:help expand()
garyjohn
quelle
Hilft, aber es ist ein bisschen nicht das, was ich erwartet habe. Es fügt den entsprechenden Pfad Ich bin die Bearbeitung von Datei pwd, so dass es fügt include/somefile.php. Wie komme ich nur an einen somefile.php. Ich habe die Hilfe gelesen und den alternativen Dateinamen ( #) ausprobiert ... immer noch nicht das, was ich will :( Wenn es keine Möglichkeit gibt, Dateinamen einzufügen, gehe ich mit<C-R>%
Nemoden
@Nemoden: Kein Problem. Ich habe die Antwort aktualisiert.
Garyjohn
0

Zeigt genau wie ein Hinweis an, svn log -vwelche Dateien durch einen Commit geändert wurden, sodass das Hinzufügen des Dateinamens in der Commit-Nachricht eigentlich nicht erforderlich sein sollte.

Zuerst ohne -v:

% svn log -r2                                      
------------------------------------------------------------------------
r2 | mkomitee | 2011-05-27 08:56:02 -0400 (Fri, 27 May 2011) | 1 line

change
------------------------------------------------------------------------

Nun die gleiche Überarbeitung mit -v:

% svn log -vr2                                      
------------------------------------------------------------------------
r2 | mkomitee | 2011-05-27 08:56:02 -0400 (Fri, 27 May 2011) | 1 line
Changed paths:
   M /baz

change
------------------------------------------------------------------------
% 
mkomitee
quelle
Es geht nicht darum svn(in dem ich erfahren bin und weiß, wie man Änderungen auflistet , damit Sie fyimein Wissen nicht erweitern), sondern darum vim(in dem ich nicht so erfahren bin und Hilfe brauche), dass dieser Asnwer nicht dem entspricht, was Ich bitte um. @garyjohn hat schon eine anständige Antwort gegeben. Ich würde jedoch nicht ablehnen wollen.
Nemoden
Wahrscheinlich ist es mein Fehler - ich habe nicht gesagt, dass wir in unserem Deployment-System nicht sehen, an welchen Dateien Änderungen vorgenommen wurden, aber wir sehen nur Kommentare zu diesen Commits. Ich werde wahrscheinlich in naher Zukunft einige Änderungen an unserem System vornehmen, z. B. ein Popup-Fenster, in dem alle Informationen zu einem bestimmten Commit angezeigt werden, aber jetzt habe ich nicht genug Zeit, um interne Software zu optimieren . Ich weiß - das ist
scheiße
Das ist gut. Ich stelle nur die Notwendigkeit in Frage, Informationen zu einer Commit-Nachricht hinzuzufügen, die bereits verfügbar ist. Meine Antwort wäre besser als Kommentar zu der Frage geeignet gewesen, da es nicht wirklich ein Versuch war, die gestellte Frage zu beantworten.
mkomitee
Ja :) Deshalb habe ich ein wenig hart geantwortet. Es tut mir leid, wenn es sich so angehört hat (das habe ich gemerkt, nachdem ich meine Kommentare jetzt noch einmal gelesen habe). Ich schätze die Hilfe der Community sehr.
Nemoden