ex-showmarks


Ⅰ. 插件描述

Visually shows the location of marks.

Ⅱ. 基本信息

创建日期:  2001-11-20
使用用户:  9
Github星:  4
插件作者:  exvim

Ⅲ. 安装方法

使用Vundle管理器安装

在你的.vimrc下添加:
Plugin 'exvim/ex-showmarks'
… 然后在Vim中运行以下命令:
:source %
:PluginInstall

对于Vundle版本 < 0.10.2,请用上面的Bundle替换Plugin。

使用NeoBundle管理器安装

在你的.vimrc下添加:
NeoBundle 'exvim/ex-showmarks'
… 然后在Vim中运行以下命令:
:source %
:NeoBundleInstall

使用VimPlug管理器安装

在你的.vimrc下添加:
Plug 'exvim/ex-showmarks'
… 然后在Vim中运行以下命令:
:source %
:PlugInstall

使用Pathogen管理器安装

在终端中运行以下命令:
cd ~/.vim/bundle
git clone https://github.com/exvim/ex-showmarks

Ⅳ. 文档说明

# Intro

ShowMarks provides a visual representation of the location marks.
Marks are useful for jumping back and forth between interesting points in a buffer, but can be hard to keep track of without any way to see where you have placed them. ShowMarks hopefully makes life easier by placing a sign in the leftmost column of the buffer. The sign indicates the label of the mark and its location.
It can be toggled on and off and individual marks can be hidden(effectively removing them).

By default the following keymappings are defined:

  • mt : Toggles ShowMarks on and off.
  • mh : Hides an individual mark.
  • ma : Hides all marks in the current buffer.
  • mm : Places the next available mark.

ShowMarks requires that Vim is compiled with the +signs feature.

Requirements

  • Vim 6.0 or higher.

Installation

This plugin follows the standard runtime path structure, and as such it can
be installed with a variety of plugin managers:

To install using Vundle:

# add this line to your .vimrc file
Bundle 'exvim/ex-showmarks'

To install using Pathogen:

cd ~/.vim/bundle
git clone https://github.com/exvim/ex-showmarks

To install using NeoBundle:

# add this line to your .vimrc file
NeoBundle 'exvim/ex-showmarks'

Download zip file:

cd ~/.vim
unzip ex-showmarks-master.zip
copy all of the files into your ~/.vim directory

What I changed

Apply the patched come from Easwy's blog

Easwy in his blog (http://easwy.com/blog/) published a patch for showmarks plugin, in the article advanced vim skills: advanced move method Since it is all in Chinese, I'll give you an explanation of what he have done.

The patch will fix a bug that the uppercase marks will showed in every file in the line you define it. After the patch, it only show up in the line in the file last time you define it.

Add toggle method for mark define

When you define mark "a", the way you can remove the mark highlight is use <leader>mh in the place you define it, or use <leader>ma to remove all marks. I think it make people comfortable to remove makrs just by typeing the mark define again in the same place. So I add this method.

So now when you define mark "a" in place 1, and move around to some where, when you back, you can remove it by typing "ma" again.

Add unique method for mark define

You can define multiple marks in same place, and showmakrs plugin even provide you different color when a line have marks more than one. But I don't understand why people want to define two or more makrs in same place, it is wasted, and hard to remember marks.

So I change the mark define behavior in showmarks plugin, now if you define mark "a" in place1, and then when you define mark "b" in same place, it will occupy the place by taking mark "a" off. So you will have only one mark in one place.

Recommended .vimrc settings

Here is my settings of ShowMarks in my vimrc file:

let g:showmarks_enable = 1
let showmarks_include = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

" Ignore help, quickfix, non-modifiable buffers
let showmarks_ignore_type = "hqm"

" Hilight lower & upper marks
let showmarks_hlline_lower = 1
let showmarks_hlline_upper = 0 

Recommended highlights

exlightgray

" highlights 
" For marks a-z
hi clear ShowMarksHLl
hi ShowMarksHLl term=bold cterm=none ctermbg=LightBlue gui=none guibg=LightBlue
" For marks A-Z
hi clear ShowMarksHLu
hi ShowMarksHLu term=bold cterm=bold ctermbg=LightRed ctermfg=DarkRed gui=bold guibg=LightRed guifg=DarkRed
" For all other marks
hi clear ShowMarksHLo
hi ShowMarksHLo term=bold cterm=bold ctermbg=LightYellow ctermfg=DarkYellow gui=bold guibg=LightYellow guifg=DarkYellow
" For multiple marks on the same line.
hi clear ShowMarksHLm
hi ShowMarksHLm term=bold cterm=none ctermbg=LightBlue gui=none guibg=SlateBlue

solarized

if &background == "light"
    " For marks a-z
    hi clear ShowMarksHLl
    hi ShowMarksHLl term=bold cterm=none ctermbg=grey gui=none guibg=grey

    " For marks A-Z
    hi clear ShowMarksHLu
    hi ShowMarksHLu term=bold cterm=bold ctermbg=lightred ctermfg=darkred gui=bold guibg=lightred guifg=darkred
else
    " For marks a-z
    hi clear ShowMarksHLl
    hi ShowMarksHLl term=bold cterm=none ctermbg=lightblue gui=none guibg=#eee8d5

    " For marks A-Z
    hi clear ShowMarksHLu
    hi ShowMarksHLu term=bold cterm=bold ctermbg=lightred ctermfg=darkred gui=bold guibg=lightred guifg=darkred
endif

Reference

添加新评论