vim 使用

1.1 vim的几种模式

插入:按i,a, o等进入,用于添加文本

替换:按R进入,当前文本会被替换为键入的文本

命令模式:按’:’进入,可执行vim命令或shell命令(!command)

可视(visual)模式: 按V进入。可视模式下可方便选取所需的块,进行复制操作

记录模式:q:,唤出历史命令窗口

查找模式:./ .?  进行文本查找

模式切换:

按Esc退出相应的模式,再键入相关命令进入其他模式。

在insert模式下使用normal模式:ctrl+O后进行,一次有效

 

1.2  常用操作

1)  移动:

行首^或0(0是移到行开始处,^是移到行首第一个字符开始处) 行尾$ 

第一行最开始处 gg

结尾处 G  或者G  N(N为大于文件的总函数的整数)

第N行: N gg 或 N G

按单词移动:ge (移动到前一个单词的尾部) w(向后)    b(向前) 

匹配移动:fx 第一个匹配’x’的单词

跳到文档50%处:50%

行间跳转: H(行首)  M(行中)   L(行尾)

定标跳转: ma(a~z) 放置一个a标志   ‘a 跳转到该标记处,可使用marks查看

‘0:回到你上次退出vim的位置,’1 回到上次退出vim位置的前一个位置,以此类推

在括号中跳转: % 可以在{} [] () 中跳转,可以设置选项加入其它跳转符号,如<>,命令为set matchpairs=…,<:>

获知光标所在的字符是整个文件的第几个字节:g CTRL+G

 

2)      插入

a:当前位置后插入

i:当前位置插入

o:新起一行插入

 

插入连体字,如梅花等:

CTRL+k 会出现?

在其后输入相关字符即可,如cC(Co),会显示一个©㏇

使用digraphs可以查看有哪些可用的digraph

 

添加命令的输出:!!(command),如 !!date  #添加时间戳

 

3)      复制、删除及粘贴

复制/粘贴:p

删除: dd(删除当前行)、3d 删除当前行往下3行(相当于执行三次dd)、x(删除光标所在字符)、nx(相当于执行n次x)、daw(删除光标所在单词)、cw(删除光标所在单词并置于插入模式)、das(删除一个句子)

复制:yy(复制所在行)、yaw(复制所在单词)、yas(yank a sentence)

剪切:相当于执行完d操作后再执行y操作(d操作后内容会被放到剪切板)

块操作: ctrl + V进入visual模式

重复执行上次操作:ctrl+A(agin)

逐个字符复制上一行内容:ctrl+Y (相当于Photoshop中的图章工具

 

4)      查找与替换

普通查找:./ .?  分别为向后和向前查找,区分大小写

不区分大小写查找:set ignorecase   或者./\cword (当前查找有效)

文本替换:[range]substitute/oldword/newword/g,c (g表示全局,c表示替换前确认)

[range]相关的字符:. 表示当前行,$表示最后一行,%表示所有行,例子如下:

: .+3,$-5 (表示当前行往下3行到导数第五行)

?^Chapter?+3, /^Chapter/-5   (正则表达式,表示以Chapter开头的行,?表示向前查找,/向后查找)

 

global替换:[range]global/{pattern}/{command}, 对满足模式的内容进行操作

对选中的文本进行替换操作:%s/oldword/newword/g

 

语法高亮:set hlsearch(hls)

 

5)      撤销与恢复

撤销::u

恢复:ctrl+R   #与撤销操作对应

 

1)      vim缩写与命令自动补全:

自动补全:

         输入单词后按ctrl+N或ctrl+P,会出现一个匹配列表供选择

ctrl+N为向后(Next)查找匹配,ctrl+P为向前(Previous)查找匹配

使用缩写和错误更正:

         缩写:iabbrev adadvertisement  #输入ad<Space>将会把ad替换为advertisement, <Space>为空格

         更正打字错误(也是缩写的一种情况):abbreviate tehthe  #使用方法同缩写

怎么禁止缩写和更正选项?

unabbrevicate 缩写名

abclear  #删除所有缩写

 

2)      多窗口:

sp filename|directory  # split filename  当打开文件夹后,把广播移动到文件名上,按gfctrl+o可以打开文件

vsplit filename  #vertical split (垂直拆分窗口)

 

3)      宏录制

相当于命令脚本,按q(a~z) 开始录制,再次按下q就结束宏录制,宏功能在解决重复问题时很好用。

使用方式: @a  (使用宏a)

 

4)      批处理;

1 先把命令保存

%s/oldword/newword/g

write tempfile #如保存到change.vim中

quit

2 执行脚本

for file in *txt; do

vim –e –s $file < change.vim

lpr –r tempfile

done

 

5)      dos与unix文件格式

设置支持的文件格式:set fileformats=unix,dos

设置当前文件格式:set fileformat = [dos][unix][mac]  #这三种文档的回车换行符不一样,区分<CR><LF>等字符,如dos文档在unix格式下回车换行会显示’^M’

p.s : 将dos格式文件转换为unix格式可使用dos2unixfilename

 

6)      换行与制表位

设置自动换行:set wrap   设置不自动换行:setnowrap

显示行号:set nu   关闭行号:set nonu

设置tab键为4个空格:

:set shiftwidth=4

:set softtabstop=4 

:set tabstop=4

恢复原来的默认值:retab 8

 

设置制表位扩展为空格:expandtab

设置自动缩进:set autoindent

 

以上这几个命令可以导入~/.vimrc文件中,打开vim时自动加载,很方便 

7)      帮助

查看帮助:help ‘whichwarp’ (whichwrap为主题)

help + 选项,选项可用options查看

 

8)      大小写转换:

单词操作:gUw(小写转大写)  guw(大写转小写)  g~~ 反向(大写转小写,小写则转大写)

gUgU 改整行 gUU

 

9)      排序:

1 跳转到指定行  a

2 !nG 跳转到第n行

会出现提示:.,.+n sort<enter> 下划线部分为输入字符

 

10)  保存:

w 保存当前文件

wall 保存所有被改动的文件

 

保存选项:

:session options  查看session选项

:mksession vimbook.vim   保存会话选项

:source vimbook.vim 或启动vim时,vim –s vimbook.vim  #导入保存的会话选项

 

保存信息(标记,寄存器和命令历史记录等):wviminfo! ~/.viminfo

恢复保存的信息:rviminfo! ~/.viminfo

 

保存视图:mkview    #可以指定文件名

载入上次保存的视图:loadview

 

恢复默认值:blank buffer

定制sessionoptions选项:set sessionoptions+=resize  #窗口大小

curdir folds help (帮助窗口)

 

11)  文件加密:

vim –x filename  #打开的时候即加密

:x   #命令模式下加密

取消加密:set key=    #设置key为空的话就不加密

vim –x –n file.txt  #不使用加密文件

 

12)  其他:

代码常用操作:

多行注释:用s#^#//#g 操作

查看某个函数的原型:光标位于函数或者文件名上,按[I

文本对齐:[range]center/right/left[width] #width为文本行宽

使用tags:

ctags –R . #为当前目录下的文件生成tags

导入tags:set tags=~/.tags

跳转:ctrl + ] 跳转到定义处, ctrl + o 跳转到原地

选择tag:tselect tagname

在各tags间跳转:tnext, tfirst, tlast, [count]tprevious, [count]tnext  #count为跳转的次数


13) vim 快捷键映射

作为编辑器之神,vim最吸引人的地方莫过于其可以定制自己喜欢的plugin,打造专属的高效编辑器,这个可以通过配置vimrc 及使用各种各样的plugin来实现。关于这这方面的文章,个人推荐:

http://easwy.com/blog/archives/advanced-vim-skills-catalog/ 

http://amix.dk/vim/vimrc.html

https://github.com/yangyangwithgnu/use_vim_as_ide
 


文件行数,单词统计: [range]write !wc,其中range为范围,如[1,5]

欢迎转载,转载请注明出处:http://blog.csdn.net/codingcs

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值