Frage

I am using the Show Marks plugin in vim to display where the marks are. The displayed marks can be toggled on/off with the \mt command. When I first open a document the marks are off like so:

Marks Off

Then about 4 seconds later with absolutely no action on my part, the left hand mark margin pops in like so:

Marks On

I have three questions:

  1. What are those default marks?
  2. Why is it taking several seconds for it to get displayed?
  3. How can I force the mark margin to activate/deactivate at start up?

Here is .vimrc file (I know it's messy, but in the words of Colonel Walter E. Kurtz: "You have a right to kill me...but you have no right to judge me.")

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>
War es hilfreich?

Lösung

From the help files:

let g:showmarks_enable=0

The default marks could be things like your last changed line.

:h `[

But they look like numerical marks, you may have just set them during a previous edit? I'm guessing they will go away if you type :delmarks 0 1 2 3 4 5 6 7 etc

Edit: This is also in the help files which probably explains the opening after 4 seconds:

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.

Andere Tipps

Those marks are special marks, which Joachim mentioned.

To only show the marks you have set yourself, i.e. the "normal marks", add this to your .vimrc file:

let showmarks_include = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"   

I was also looking for these marks that I didn't set. This link

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

explains at the bottom of the page the built-in marks. Look for "Special marks".

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top