6

マークがどこにあるかを表示するためにvimでShowMarksプラグインを使用しています。表示されるマークは、コマンドでオン/オフを切り替えることができます\mt。私が最初にドキュメントを開いたとき、マークは次のようにオフになっています。

マークオフ

次に、約4秒後、私の側でまったくアクションがない場合、左側のマークマージンが次のように表示されます。

マークオン

私は3つの質問があります:

  1. それらのデフォルトのマークは何ですか?
  2. 表示されるまでに数秒かかるのはなぜですか?
  3. 起動時にマークマージンを強制的にアクティブ化/非アクティブ化するにはどうすればよいですか?

これが.vimrcファイルです(私はそれが厄介であることを知っていますが、ウォルターE.カーツ大佐の言葉で:「あなたには私を殺す権利があります...しかしあなたには私を判断する権利がありません。」)

set modeline                        "These two lines display the file name at the bottom
set ls=2

set undodir=~/.vim/undodir
set undofile
set undolevels=100    "maximum number of changes that can be undone
set undoreload=10000 "maximum number lines to save for undo on a buffer reload

"Keep undo history when switching buffers
set hidden

set nocompatible                    "Don't use vi-compatibility mode

set backspace=2                     "Use the smart version of backspace

set expandtab                       "Tab-related settings

set number                                              "Line Numbers

set shiftwidth=4
set showcmd
"set ts=4                                                "4 columns for tabs

set smarttab

set smartindent                                          "Indent every time you press enter

set scrolloff=999                       "Cursor Always in middle

set ruler                           "Always display row/column info 

set tabpagemax=100                  "I want a lot of tabs

set tags=tags;/

imap jj <Esc>                       "Map jj to escape

map <S-j> :bp<CR>           "Map F7 to previous tab

map <S-k> :bn<CR>               "Map F7 to next tab

map <Space> <PageDown>              "Map space bar to next page down

set hlsearch "Highlight search strings

"map <S-u> <C-u>                        "Map page movement keys to shift as well

"map <S-d> <C-d>                        "Map page movement keys to shift as well

"map <S-b> <C-b>                        "Map page movement keys to shift as well

"map <S-f> <C-f>                        "Map page movement keys to shift as well

map <F2> :NERDTreeToggle<CR>    "Toggle Nerd Tree on/off

syntax on

"for Syntastic

function! BufSel(pattern)
  let bufcount = bufnr("$")
  let currbufnr = 1
  let nummatches = 0
  let firstmatchingbufnr = 0
  while currbufnr <= bufcount
    if(bufexists(currbufnr))
      let currbufname = bufname(currbufnr)
      if(match(currbufname, a:pattern) > -1)
        echo currbufnr . ": ". bufname(currbufnr)
        let nummatches += 1
        let firstmatchingbufnr = currbufnr
      endif
    endif
    let currbufnr = currbufnr + 1
  endwhile
  if(nummatches == 1)
    execute ":buffer ". firstmatchingbufnr
  elseif(nummatches > 1)
    let desiredbufnr = input("Enter buffer number: ")
    if(strlen(desiredbufnr) != 0)
      execute ":buffer ". desiredbufnr
    endif
  else
    echo "No matching buffers"
  endif
endfunction

"Bind the BufSel() function to a user-command
command! -nargs=1 Bs :call BufSel("<args>")

call pathogen#infect() 

"For syntax checking (syntastic)
let g:syntastic_auto_loc_list=1
let g:syntastic_disabled_filetypes=['html']
let g:syntastic_enable_signs=1
"set statusline=%{SyntasticStatuslineFlag()}
set statusline=%<\ %n:%f\ %m%r%y%{SyntasticStatuslineFlag()}%=line:\ %l\ of\ %L\ (%p%%),\ col:\ %c%V\ \ \ \ \ Modified:\ %{Time()}

function! Time()
  return strftime("%c", getftime(bufname("%")))
endfunction

"For jsbeautify
map <F9> :call g:Jsbeautify()<CR> 

"Check PHP Syntax
:autocmd FileType php noremap <C-L> :!php -l %<CR>

"Beautify PHP Syntax In 4 steps
"1) reduce all multiple blank lines to a single blank line
"2) change all blank lines to something unique like 'if(true)echo('it puts the lotion on the skin');'
"3) apply beautifier 
"4) change unique quote back to new line
func! ParsePHP()
    :exe 'g/^\_$\n\_^$/d'
    :%s/^[\ \t]*\n/$x = 'It puts the lotion on the skin';\r/ge
    :exe '%!php_beautifier --filters "ArrayNested() IndentStyles(style=k&r)"'
    :%s/$x = 'It puts the lotion on the skin';//ge
endfunc

map <F8> :call ParsePHP()<CR>
4

3 に答える 3

8

それらのマークは、ヨアヒムが言及した特別なマークです。

自分で設定したマーク、つまり「通常のマーク」のみを表示するには、これを.vimrcファイルに追加します。

let showmarks_include = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"   
于 2012-07-03T09:13:09.847 に答える
3

ヘルプファイルから:

let g:showmarks_enable=0

デフォルトのマークは、最後に変更された行のようなものである可能性があります。

:h `[

しかし、それらは数字のマークのように見えます、あなたは前の編集の間にそれらを設定したかもしれませんか?入力すると消えてしまうと思い:delmarks 0 1 2 3 4 5 6 7ます

編集:これはヘルプファイルにもあり、おそらく4秒後に開くことを説明しています。

ShowMarks is activated by the |CursorHold| |autocommand| which is triggered
every |updatetime| milliseconds.  This is set to 4000(4 seconds) by default.
If this is too slow, setting it to a lower value will make it more responsive.
于 2012-01-04T00:25:57.423 に答える
3

設定しなかったこれらのマークも探していました。このリンク

http://vim.wikia.com/wiki/Using_marks

ページの下部に組み込みのマークについて説明します。「特別なマーク」を探してください。

于 2012-03-16T08:34:04.477 に答える