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

guoyoooping的博客

audio,picture, text and video

 
 
 

日志

 
 

Vim学习笔记5: Vim之于文本  

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

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

[关键字] Vim, 文本, 文档结构图, 语法高亮, 格式化, 加密

[摘要] Vim作为一个编辑器闻名于世, 但很多人仅用它来浏览代码. 事实上加上一些配置,
配合几个插件, 在编辑文本文件方面, Vim绝对比Word, Notepad++等好用.

你一定用过office word一类的文档工具, 并且非常喜欢那种它们所拥有的漂亮的格式,
甚至在窗口的左边还可以打开一个文档结构图, 方便地浏览整个文档的结构. 这一切vim
也可以完成, 而且只需要几个命令就可以完成格式化, 不需要你做任何额外的劳动就可以
直接显示文档的结构图.

1. 格式化文本

不同的编辑器对段落的定义不同. 一些编辑器认为从一个回车换符到下一个回车换行符之
间的文字是一段, vim则认为从一个空行到下一空行之间的非空行文本是一个段落. 所以
这里我们把格式化定义成将文本文件格式化成以回车换行作为一行分隔, 以空行作为段落
分隔的文本.

首先定义使用偏好, 格式化的标准:
   
    1)set nu "显示行号

    2)set wrap "设置长行回绕, 否则一行延申到屏幕外面

    3)set textwidth=79 "定义行宽, 超过这个宽度的文本就要折行

    4)set guifont=新宋体:h13:cGB2312 "使用的字体及大小, 只对gvim有效.

    5)set linespace=3 "两行的间距, 只对gvim有效.

    6)set linebreak "只在单词结束后换行, 避免把一个单词显示在两行. 中文不建
    议打开这个选项.

    7)set nojoinspaces "用j命令合并两行时, 不在之间加空格

    8)set formatoptions=tcrmB "格式化选项, 可以用命令":help formatoptions"
    查看各个选项分别代表什么意思, 这里简单介绍几个, t: 输入时自动断行; c:
    对于程序的注释也应用自动折行; r: 注释自动折行时自动加入注释前缀; m: 可
    以在任一中文字符后断行; M: 合并两行时两行中间不插入多余的空格

使用gq命令可以格式化所选的文本, gq命令也可以带参数, 比如gqap是格式化一段文本,
gqq是格式化当前行, 更多的格式化文本的命令请参考<3.5 文本格式化命令>或vim自带帮
助文档.

使用":center"命令可以行所选文字靠中间对齐, ":left"和":right"则使所选文本靠左或
右对齐. 这三个命令也可以带参数, 具体请参考<3.5 文本格式化命令>或vim自带帮助文
档.

有时需要将以空格分段的文本转换成以回车换行分段的文本, 例如需要打印或将文本拷贝
到office word编辑器里的时候, 这时用简单的命令就可以实现这些功能, 请参考<7. vim
高级应用>.

2. 浏览文本的文档结构图

浏览文本的文档结构图和浏览C语言代码的函数没有什么不同, 因此你要做的就是将纯文
本文件看成是一门编程语言, 文件的标题当成是函数的名字, 标题下的正文当作是该函数
的实现. 这样你也可以用taglist窗口显示文件的结构图了.

不理解上面说的也没有关系, 你只需要"TxtBrowser"(#Vimscript 2899)插件就行了. 打开
一个文本文件, 执行命令":Tlist"就可以显示文档结构了, 修改文件后用":TlistUpdate"
更新标题列表. 当然vim也不是神, 它需要你的文档遵循一定的规律, 基本的要求就是标题
要以"数字.数字."的形式开头. rfc文档的书写规范是很好的例子.

3. 文本文件的语法高亮

这和上一节没有什么不同, 上一节定义了文本文件的语法, 这一节定义文本文件的语法高
亮. 你要做的就是将安装插件"TxtBrowser"(#Vimscript 2899), 安装之后, "txt.vim"文
件会被拷贝到 ~/.vim/syntax目录下, 该文件定义了不同的语法元素的不同语法高亮. 当
然如果你需要在 .vimrc文件里加入一行:

au BufRead,BufNewFile *.txt setlocal ft=txt

它会将标题, 超级键, 括号内文字, 关键字等显示为不同的颜色.

4. 浏览时一些有用的快捷键

这一节的实现也是靠插件"TxtBrowser"(Vimscript #2899, 这个提的太多了, 有点做广告
的嫌疑^_^), 提供下下面的快捷功能:

1) 打开网页, mp3, pdf文档等: 把光标放到URL上, 执行":TxtbrowserUrl"(或<leader>g)
打开所在处的URL, 包括网址, 各种文件(包括pdf, mp3等), Email地址.

2) 查字典: 把光标放到单词上, 执行":TxtbrowserWord"(或<leader>f)打开网络字典查单
词.

3) 用搜索引擎搜索单词: 把光标放到单词上, 执行":TxtbrowserSearch"(或<leader>s)打
开google搜索.
                        
5 加密文件
                        
打开文件时加-x参数, 或者在打开文件后在Normal模式下输入命令":X", 文件可进入加密
模式. 此时vim会向你要一个密码用于加密/解密该文件(为了避免你的键入有误, Vim会要
求你再次输入):          
                        
    Enter encryption key: ********
                        
保存后退出, 如果你试着用另一程序来打开该文件, 或者你输入的密码错误的话, 你会看
到一堆乱码. Vim也没办法判断你给的密码是对是错(这也使得破解密码十分困难).
                        
要停止对一个文件加密, 可以把用下面的命令把'key'选项设置为一个空字串. 保存后退
出, 下次你打开该文件时就不会进行加密了:

    :set key=
                        
注意: 由于加密后文件的编码方式可能发生了改变, 因此所有和语言相关的tag功能都将不
可用. 解密该文件后才能使用taglist功能.
  评论这张
 
阅读(1688)| 评论(2)
推荐 转载

历史上的今天

评论

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

页脚

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