前段时间有朋友在微博上@我推荐了一款vim的插件,用来显示对齐线,感觉效果不错,就给大家推荐一下.
下载链接: Indent Guides
截图如下:
一. 安装
不用多说,直接解压放到vimfiles or .vim下
二. 配置
基本可以不用配置,不过由于默认的对齐线宽度太宽,不太美观,所以我改成1了,如下
let g:indent_guides_guide_size=1
详细的配置,可以参看他的文档,这里不再多说
三. 使用
默认的键盘映射是
<mapleader>ig
OK,插件就介绍到这里,其实如果只是单纯的介绍插件,就不用写这篇文章了。
我在用这个插件的时候,又发现了另一个需求,即标尺的功能。vim7.3里面默认提供了colorcolumn,例如执行:
:set cc=80
就可以高亮第80列,效果如下:
但是有时候我们想看一下几行的字符是不是在同一列上时,手工去输入列数实在太麻烦了,所以我就单独写了一个函数,来满足这个需求:
map ,ch :call SetColorColumn()<CR>
function! SetColorColumn()
let col_num = virtcol(".")
let cc_list = split(&cc, ',')
if count(cc_list, string(col_num)) <= 0
execute "set cc+=".col_num
else
execute "set cc-=".col_num
endif
endfunction
按下,ch 就可以将当前光标下的列高亮,再按下一次,取消高亮;并且可以同时多列高亮。
这两个工具搭配在一起使用,相信会取得更好的效果。
OK,就是这样~
依云 on #
「将当前光标下的列高亮」——:set cuc。
Reply
Dante on #
依云你太牛了。。总感觉你已经把vim文档都背熟了的说。。果然下次发文前应该先和你私下沟通一下是否已经有解决方案了。。。
Reply
依云 on #
呵呵,对于 Pythoner 来说,这个需求很常见啦。
Reply
DD on #
求上边截图配色方案,很舒服的感觉~~~
Reply
Dante on #
好像是依云推荐的,manuscript.vim
Reply
依云 on #
我怎么不记得了……不过这个配色我确实有记载的。
Reply
geek42 on #
我也是用 cursorcolumn
同依云,对于pytoner, 这个对齐太重要了
另外推荐用vim73 那个cuc效果很棒
Reply
依云 on #
vim73 新支持的特性是 cc,cuc 早就支持了的哦。
Reply
fishy on #
前面那个 :set cc=80 其实不太好。在 vimrc 里面 set textwidth=80 然后 :set cc=+1 要更好一点。
Reply
Dante on #
赞同~
Reply
Syndim on #
LZ的配色是什么?能分享下么?
Reply
Syndim on #
另外这个能区分tab和空格么?
Reply
依云 on #
你如果也是 Pythoner 的话,去 ftplugin/python.vim 里加两句就好啦。
setl et
setl tw=8
Reply
張旭 on #
您好!我還不是一個 pythoner
可是我想讓 vim 顯示 tab 或空格、行尾換行符號,請問也是這樣做嗎?
我已經 set tabstop=4
這樣 tab 應該是已經取代成空格了
Reply
依云 on #
set list
Reply
自由建客 on #
我一直用 :set lcs=tab:\|\ 一直困扰空格缩进怎么办!C 代码我一直用四个空格缩进的。
另,python 以版式定逻辑真够蛋疼的。
Reply
fifver on #
将空格转换为tab,可使用以下命令
:set noexpandtab
:%retab
Reply
自由建客 on #
我要的就是空格而非制表符!
Reply
fifver on #
不好意思,又重新看了一遍上面的留言。如果你是指缩进线的话,又不想使用上面的方法,那么你可以试一试这个插件(Indent Guides):http://www.vim.org/scripts/script.php?script_id=3361。若你已用过,或是所指其它,我也不清楚了,抱歉。
Reply
自由建客 on #
哈哈……我的意思就是说我看到这篇文章就找到解决方案了。
Reply
Yggdroot on #
这个插件满足你的要求:https://github.com/Yggdroot/indentLine,效果跟Indent Guides不同,Indent Guides显示的是很粗的“线”,这个插件显示的很细。
Reply
jemyzhang on #
发现在.vimrc中用colorscheme,然后这个guideline就不会出来了,是不是color_autodetect有问题?有人碰到过吗?
Reply
justin.yqyang on #
enable hicolumn in .vimrc can do the same thing
Reply
張旭 on #
您好!請問可以說得更清楚些嗎?
you mean :set hicolumn ?
Reply
hellowrold on #
您好,我想请教一个问题。在vim里面怎么匹配一个制表符?例如有一行内容是用tab键和空格隔开的几个单词,我想匹配用tab隔开的然后加一个换行符,用%s/\t/\r/g似乎不行啊。
Reply
依云 on #
查找时使用 \n 表示 EOL(行结束)。
Reply
hellowrold on #
我的意思是例如下面:
坦克 fire in the hole
飞机 I can fly.
坦克和飞机后面跟的是制表符,而后面的单词跟的是空格。怎么正则成下面的形式:
坦克
fire in the hole
飞机
I can fly
Reply
yefei on #
你是在windows下用的gvim吧,windows中换行符是^M,先按ctrl-Q,再按ctrl-M就可以输入了换行符了,替换的时候把你的表达式中的 \r 替换成这样的表示就行了
Reply
hellowrold on #
换行没问题的,关键是怎么区分空格和制表符,单词之间是空格,而前面用的是制表符。虽然可以用\s来替换空白,但没法区分啊
Reply
- on #
正则匹配就是\t,如果没有匹配到,先要检查下是否不是制表符。
Reply
Ni许嵩 on #
您好!请问,vim有没有可以根据等号对齐的插件?
比如说,有多个给变量赋值的语句,如:
$a = 1;
$ab = 2;
$abc = 3;
$abcd = 4;
$abcde = 5;
有没有办法实现,所有的 = 都在同一列,而且 = 之后每行的空格个数是相同的?
谢谢您!
Reply
ccjjxl on #
vim插件(tabular)
Reply
Ni许嵩 on #
谢谢您!
Reply
edi on #
为什么我复制了插件进去 没效果呢
Reply
咖啡小冰 on #
我复制进去了,也没效果。
Reply
Dante on #
7.3 么?
Reply
張旭 on #
vimer 您好!
我照你說的將套件放到 .vim 解壓縮,
然後輸入 ctrl+, 接着輸入 ig(我的 mapleader 是 ctrl+,)
結果底下出現:
http://images.plurk.com/5c94f92a93dfb87454376434bab3ddee.jpg
壓下 enter 後,變成:
http://images.plurk.com/0539cf3d5961eb8349c7a916eb274e95.jpg
可以指點一下嗎?謝謝!
Reply
- on #
根据截图中的关键字搜索,然后参考下面两个连接的描述,应该是你的colorschema可能存在问题:
http://hlee.iteye.com/blog/1664838
https://github.com/nathanaelkane/vim-indent-guides/issues/31
你可以试试链接中的解决方案:
adding
colorscheme default
to .vimrc
Reply
liu1061 on #
请问一个有没有指定特定行高亮的方法或者操作啊
就是像set cc = n, n列就高亮,行高亮有没有啊!谢谢!
Reply
Dante on #
这还真没有,但是你可以通过 high light配置出来
Reply
aptx4869 on #
话说你不觉得这
:set cc=80
配色效果好难看么……
所以我会再设置一下
:hi ColorColumn cterm=underline ctermbg=8
之类的
Reply
Dante on #
嗯,我之前有设置过,后来觉得还不如红色显眼,虽然丑点。。
Reply
看不懂 on #
楼主,我这样做:
下载然后解压,然后把插件目录放到vimfiles目录下,重启gvim7.3(xp系统),可是什么都没发生,能介绍的详细点吗?谢谢
Reply
Yggdroot on #
借宝地帮着宣传https://github.com/Yggdroot/indentLine这个插件,支持用空格缩进的对齐线的显示。
Reply
Lex on #
请问你这个插件如何开启
Reply
Yggdroot on #
默认是开启的。
Reply
leyle on #
对比了博主和你的插件,还是你这个插件好用些,颜色调浅到基本不影响查看源代码时,仔细看又能看到那个对齐线,就很好了,多谢你开发了这个插件。
Reply
学习了 on #
为什么我怎么都不会出现了?mapleader ig 这句是什么意思?
希望指点 谢谢
Reply
endle on #
个人理解是按住一个被定义为 mapleader 的键盘按键,然后按i 再按g
默认应该是 \ 吧
Reply
seanchen on #
let mapleader =',' "先设置先置命令,leaper
let g:mapleader =',' "先设置先置命令,leaper
LZ,我的设置如上,但是还是不会用mapleader,是按着mapleader不放按其他的,还是按照顺序按呢?总之没出现你的效果啊~菜鸟求解答哦~
Reply
endle on #
我的做法是 按住mapleader不松手,然后先按 i,再按 g,最后松开mapleader
我也是一知半解,没法给更多的解答
Reply
- on #
mapleader的话,我个人的理解就好像组合键,而且mapleader也是分模式的,简单地说,你可以认为他是一个自定义的ctrl键,首先定义mapleader,然后在定义其他映射时就可以直接使用一个变量,而不是使用实际的leader键了,好处是更换leader时更方便;
比如说:键盘上的各键位大部分都初始化定义了一些功能,我新增的键位映射,如果不想覆盖原有的配置,只能使用其他的,但是使用crtl或者alt这类的组合键按起来较远并且不方便,就可以使用leader+键位这种方式,增加可以设置的组合键,同时更重要的是,如果不使用leader+键位这种方式直接设置映射为,+ig这种方式,以后更换键位映射时要逐条修改,容易发生遗漏并且不利于键位映射的管理。
Reply
D瓜哥 on #
好牛逼啊!希望俺能尽快把vim学好,哈哈
Reply
endle on #
翻了 github 上的文档才知道
let g:indent_guides_guide_size=1
是需要设置 soft-tab 的,否则无效。
难道只有我一个人因为这个问题纠结很久吗?
Reply
Corey on #
还有我还有我!你不是一个人,终于知道怎么解决了,感谢!!
Reply
Corey on #
我能说还是没解决吗,我按照github的截图的第二个设置,一模一样,但是宽度还是没变
Reply
Corey on #
我懂了,制表符都会变色,只有用空格来缩进才行
Reply
sarrow104 on #
用了若干年的vim,觉得它在可视化显示的地方,真丑陋。比如博主提到的上述两个东西。
另外,楼上的endle,ig 的意思就是连续按和i,g这三个按键而已。不是你想的那么复杂——当然,间隔时间不能太长,不然vim会分别理解这三个按键。
Reply
endle on #
写下哈。我给想麻烦了
Reply
sarrow104 on #
Orz 测试:<mapleader>
Reply
ma6174 on #
https://github.com/ma6174/vim/raw/master/screenshot.png
Reply
adf on #
楼主太强了。
对IT还这么喜欢。
只是楼主还不知道你的同学在做销售已经赚了多少钱而已吧?
Reply
Dante on #
实在没能理解你说这些话的意思。
Reply
- on #
我觉得层主的意思是不是说让楼主了解下其他同学现在的经济情况,比如说收入如何,有没有固定资产,从事什么行业等等。
Reply
goldcome on #
vim自带就行了 :set cursorcolumn 可以满足需求
Reply
favajing on #
你好,我的vim7.3里下载了插件也复制了所有文件,可是没有效果 vim输入 /ig 提示找不到模式,头都搞大了-_-
Reply
小行 on #
:set cul光标所在行高亮显示,这个功能也很棒的。
Reply
无聊男 on #
这个插件如何配置打开文件直接起作用
Reply
天女下凡很麻烦 on #
每次使用都要:IndentGuidesEnable要怎么配置vimrc文件?
Reply
六翼拉菲尔 on #
:IndentGuidesEnable放在rc里面就ok了
Reply
linuxie on #
为什么我设置了soft-tab,还是那么粗呢,奇丑无比啊~呼叫vimer~~
Reply
linuxie on #
额,已经解决了,果然只有空格来缩进才行~
Reply
linuxie on #
......这是要挑衅么。。。
Reply
linuxie on #
回复adf的
Reply
aoenian on #
你好,我按照你的命令直接在vim的命令行执行就可以,但是写入 .vimrc 文档里面就没有作用,这个是什么原因呢?
Reply