2016-04-24 72 views
3

我最近發現了vim中全局標記的用法。它們似乎是一個非常強大的功能,但是當vim關閉時它們會被刪除。有什麼方法可以在vim啓動時定義vim全局標記(例如,通過在.vimrc文件中定義它們)?持久化vim全局標記

回答

4

通常情況下,全球性的標記保存在退出viminfo文件。它由viminfo選項來統治。你可以檢查它的價值是這樣的:

:set viminfo? 
  • 如果它是空的,你可以在你的.vimrc設置一個共同的價值:

    set viminfo='100,<50,s10,h 
    

    那麼全球標誌應該保存退出。

  • 如果它不是空的,則必須刪除f0參數(因爲它禁用了全局標記的保存)。

自動保存似乎是最好的解決辦法通常是,但如果你願意,你還可以設置你的vimrc一個全球性的標誌:

function! SetGMark(mark, filename, line_nr) 
    let l:mybuf = bufnr(a:filename, 1) 
    call setpos("'".a:mark, [l:mybuf, a:line_nr, 1, 0]) 
endf 

call SetGMark('A', '~/file.txt', 10) 
+0

的確。我在.vimrc文件中混淆了viminfo變量 – bergercookie

3

你需要尋找到viminfo

:help viminfo會給你一般的細節,並:help 'viminfo'會告訴你哪些需要設置的選項。 (加引號是在這方面很重要)

If you exit Vim and later start it again, you would normally lose a lot of 
information. The viminfo file can be used to remember that information,  which 
enables you to continue where you left off. 

This is introduced in section 21.3 of the user manual. 

The viminfo file is used to store: 
- The command line history. 
- The search string history. 
- The input-line history. 
- Contents of non-empty registers. 
- Marks for several files. 
- File marks, pointing to locations in files. 
- Last search/substitute pattern (for 'n' and '&'). 
- The buffer list. 
- Global variables. 

Essentialy,確保入viminfo不含f0它禁用跨會話保存文件標記。

我的viminfo設置包含

:set viminfo='100,<50,s10,h,%