注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

guoyoooping的博客

audio,picture, text and video

 
 
 

日志

 
 

Vim学习笔记10: Vim奇技淫巧  

2010-01-31 19:29:11|  分类: Vim: 学习Vim的心 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
#Author: ypguo<guoyoooping@163.com>
#Date: 2010/01/31
#Version: 1.0

[关键字]Vim 技巧

[摘要]本文总结了在学习Vim的过程中遇到的很有创意的小技巧, 有些也许没什么用处, 但
非常欣赏它的创意.

Vim非常好用, 但用好也非常需要技巧. Bram Moolenaar先生写了一篇文章讲述进行有效编
辑的七种习惯[1], 建议Vimmer们好好学习一下. 精通了那篇文章, 你应该能成为一个Vim
高手. 但是世界上总有懒人存在, 不走寻常路, 总有人追求"奇技淫巧", 本文总结了学习
Vim两年过程中遇到的非常tricky的技巧, 有些并不实用, 但每次都很震撼于它的创意!

1. 让文字自动滚屏

有时候你也许需要屏幕自动滚动, 就像在Firefox中点击鼠标中键的效果一样, 例如像我这
样的懒人在看小说时根本不想敲键盘或鼠标, 我想这也许是一个好的解决方案[2].

实现方法是在你的.vimrc里加上下面的一个映射

Reference from My ".vimrc":
|
|map <F8> <C-E>:sleep 3500m<CR>j<F8>

运行<F8>就可以自动滚动屏幕, 其中3500m是滚屏速度, 你可以根据自己的阅读速度做相应
调整. 用<Ctrl-C>结束自动滚屏状态.

其实这个功能还可以再扩展, 例如可以增加下面的功能: 加快(减小)滚屏速度, 暂停滚屏,
用q而不是<Ctrl-C>来结束滚屏等. 我大概弄了一下, 遇到了点小问题, 等有时候再慢慢实
现.

2. 让Vim记住上次关闭时的状态和光标位置

有时候, 尤其是在编辑大型工程的时候, 我喜欢保留上次关闭时的状态和光标位置, 打开
Vim就可以继续上次的工作. 在.vimrc里添加下面的函数, 即可实现这个功能.

打开你的工程, 执行":mksession"生成工程文件Session.vim(其实可以自动生成, 但是考
虑到小一点的文档并不总是需要该功能, 所以设成手动生成了). 下次打开该工程的时候用
不带参数的vim命令即可进入上次关闭时Vim的状态.

Reference from My ".vimrc":
|
|set sessionoptions+=resize,winpos "setting options of mksession.
|autocmd VimEnter * call LoadSession()
|autocmd VimLeave * call SaveSession()
|function! SaveSession()
|        if (filereadable("Session.vim"))
|                execute 'mksession!'
|        endif
|endfunction
|function! LoadSession()
|        if argc() == 0
|                silent! execute 'source Session.vim'
|        endif
|endfunction

3. 直接打开文档中的URL

有时候阅读文档的时候, 想打开文档中的某个URL, 如你忽然想访问一下这个网址:
http://guoyoooping.blog.163.com, 或者文档里列出了一张照片, 如:
file:///media/data/picture/net/China celebrates 60 years/c01_20572561.jpg, 怎么
办? 拷贝这个链接到Firefox里当然可以打开, 不过懒人有懒人的办法, 我总结了一个插件
, 安装后执行"<Leader>g"即可以打开该URL.[3]

TxtBrowser : Browse plain text easily(show the title tag and syntax highlight)
http://www.vim.org/scripts/script.php?script_id=2899

4. 用搜索引擎搜索文档中的关键字

有时候阅读文档的时候, 想用google搜索某个单词, 怎么办? 拷贝这个单词到
www.google.com当然可行, 不过懒人有懒人的办法, 我总结了一个插件 , 安装后执行
"<Leader>s"即可以打开该URL.[3]

TxtBrowser : Browse plain text easily(show the title tag and syntax highlight)
http://www.vim.org/scripts/script.php?script_id=2899

5. 直接在Vim里查字典

有时候阅读文档的时候, 碰见不认识的单词, 怎么办? 翻开字典查找也好, 打开金山词霸
查找也好, 都不如在Vim里直接查找好. 我总结了一个插件 , 安装后执行 "<Leader>f"即
可以使用默认的浏览器, 打开网络词典查字典(默认的网络词典是
www.google.com/dictionary, 可以定制).[3]

TxtBrowser : Browse plain text easily(show the title tag and syntax highlight)
下载地址: http://www.vim.org/scripts/script.php?script_id=2899

这也够懒了吧, 但没有最懒, 只有更懒, 也许有人连浏览器都不愿打开, 想在Vim中查字典
, 可以吗? 当然可以, 我写了一个插件, 安装后把光标放在单词上, 然后在命令行里执行
:Sdcv即可(当然前提是首先你的机器上已经安装了Sdcv, 建议用map映射成你常用的键, 下
载页面有详细的描述), 查找的结果会出现在状态栏里, 按<Enter>即可清掉结果.[4]

cmd.vim : Execute shell(or Windows cmd) command in Vim and echo output in Vim
下载地址: http://www.vim.org/scripts/script.php?script_id=3040

6. 让新打开的文档出现在gvim的tab页面里

6.1 Using the Windows Open or Double-Click to open files in gvim tabs

To provide an "open in tabs" capability for files without an association on
Double-Click or Open menu one need to edit registry as follows:

   1. Click Start, Run then type regedit and press Enter.
   2. Edit the registry HKEY_CLASSES_ROOT\Applications\gvim.exe\open\command
   and set the Value Data to

      C:\Program Files\Vim\vim72\gvim.exe --remote-tab-silent "%1"

The path might need to be modified for the location of gvim on your machine.

In Windows Explorer, double-click one or more files and they should open in
tabs in gvim!

6.2 Using the Windows Send To menu

Obviously you can't enter file associations for every file you'll ever open in
Vim. To provide an "open in tabs" capability for files without an association,
you can add an entry to your "Send To" context menu, as follows:

1) Click Start, Run then type SendTo and press Enter. If the Profile path for
your user name has been changed, you may need to run %USERPROFILE%\SendTo
rather than just SendTo. For Vista go to %APPDATA%\Microsoft\Windows\SendTo.

2) The SendTo directory should now be open. It contains the shortcuts in your
Send To context menu. Right-click the SendTo window and add a new shortcut to
gvim.

3) Edit the 'Target' box in the Properties of the gvim shortcut to read (you
may need to change this for your path to gvim):

      "C:\Program Files\Vim\vim71\gvim.exe" --remote-tab-silent


7. 小技巧:

1) 把DOS文件格式转成UNIX格式: ":set ff=unix"

2) 删除文档中的空行: ":g/^\s*$/d"

3) 让Windows下的Gvim启动时最大化, 添在.vimrc里: au GUIEnter * simalt ~x

4) :help tips: 有很多使用Vim的技巧.


[参考资料]

[1]http://www.newsmth.net/bbscon.php?bid=731&id=353

[2]VimTip1198: http://vim.wikia.com/wiki/VimTip1198

[3]TxtBrowser: http://www.vim.org/scripts/script.php?script_id=2899

[4]cmd.vim: http://www.vim.org/scripts/script.php?script_id=3040
  评论这张
 
阅读(2325)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017