Wie verwende ich relative Pfade für VIM-Sitzungen?


2

Ich benutze solche Sessionopts:

set ssop=blank,buffers,sesdir,folds,localoptions,tabpages,winpos,winsize

Das "sesdir" im Gegensatz zu "curdir" sollte alle Pfade relativ zu dem Verzeichnis speichern, in dem sich die Sitzungsdatei befindet. Leider gibt es eine Zeile in der Sitzungsdatei:

args absolute/path/to/file1 absolute/path/to/file2 and/so/on

Wie bringe ich vim dazu, nur relative Pfade zu verwenden, damit ich die Sitzungsdatei einfach in ein Git-Repo kopieren und meine Sitzung von einem beliebigen Computer aus fortsetzen kann?

Antworten:


1

Die Lösung von grosshat funktioniert nicht. Müssen wahrscheinlich auf Zsolt Botyakis Antwort auf SO verweisen :

Sie können das nicht tun, ohne eine Wrapper-Funktion dafür einzurichten, AFAIK.

function! MakeSession()
  let b:sessiondir = getcwd()
  let b:filename = b:sessiondir . '/session.vim'
  exe "mksession! " . b:filename
  exe "edit! " . b:filename
  exe "g:^cd :d"
  exe "x" 
endfunction

0

Das hört sich komisch an. Wenn Sie festlegen sesdir, dass der Speicherort der Sitzung als aktuelles Arbeitsverzeichnis festgelegt wird, werden alle Pfade in der Sitzungsdatei zu relativen Pfaden und nicht zu absoluten Pfaden.

Ich habe deine Sessionopts benutzt und es funktioniert. Ich kann keine Linie finden, die sich auf Pfade bezieht. Wie erstellen Sie die Sitzungsdatei? Standard ist:

  1. :mksession [filename]
  2. vim -S [Dateiname]
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.