2013-07-05 11 views
6

Ich mag würde zerren -Yank Dateipfad mit Linie nicht von Vim Zwischenablage

  • einen vollständigen Pfad zur Datei, z.B. c: \ foo \ bar \ file.txt: 94 mit seiner Linie keine

ich auch zu meinem System Zwischenablage einzufügen möchte so i '+' registrieren Sie sich für diese verwenden.

können Sie mir einen möglichen Weg vorschlagen, dies zu tun?

+0

Sie könnten es im visuellen Modus markieren –

+0

Versuchen Sie, die 'c: \ foo \ bar \ file.txt: 94' zu ziehen, wenn Sie in Zeile 94 von' c: \ foo \ bar \ file sind. txt' oder versuchst du den Inhalt der Zeile? – FDinoff

+0

Ich versuche, 'c: \ foo \ bar \ file.txt: 94' in meine System-Zwischenablage zu kopieren –

Antwort

10

Wenn Sie versuchen, c:\foo\bar\file.txt:94 heftig zu ziehen, wenn Sie auf der Leitung 94 von c:\foo\bar\file.txt sind Sie die folgende Anweisung verwenden können die + Register
<file_path>:<line_number>

:let @+=expand("%") . ':' . line(".") 

expand("%") zu setzen - ist der aktuelle Dateiname
line(".") - ist die aktuelle Zeilennummer

Ein Beispiel Mapping ist

nnoremap <leader>y :let @+=expand("%") . ':' . line(".")<CR> 
+0

Perfect !! Genau das, was ich will, vielen Dank –

+0

Wenn man Text ausgewählt hatte, wie würde man diese Zuordnung ändern, um den ausgewählten Text an den Anfang dieses Registers (vor dem Pfad und Zeile Nr.) Hinzuzufügen? – mcabrams

+1

@mcabrams ausgewählten Text wie in der visuellen Auswahl? Etwas wie "vnoremap y" + y: let @ + = @ +. Expand ("%"). ':'. Line (".") 'könnte funktionieren. Yank die visuelle Auswahl in die' + 'Register als Datei und Zeilennummer an das Ende des Registers anhängen – FDinoff