复制:yy, nyy
1、打开一个文件,在该文件下复制几行到另一个文件(如到test.txt),会覆盖test.txt中的内容
10,100w!test.txt, 注:复制第10行到100行的内容到test.txt中,并覆盖test.txt中的内容
2、在该文件下复制几行到另一个文件,但不会覆盖原内容,即追加
10,100w!>>test.txt, 注:复制10行到100行的内容追加到test.txt的结尾
输入从第几行到第几行 后输入要粘贴的位置如复制第10行到第100行的内容并粘贴到200行 :10,100 copy 200, 或者 10 ,100 co 200
剪切:3dd, p 或者: 1, 3 m 20
http://blog.csdn.net/bokee/article/details/6633193
1、打开一个文件,在该文件下复制几行到另一个文件(如到test.txt),会覆盖test.txt中的内容
10,100w!test.txt, 注:复制第10行到100行的内容到test.txt中,并覆盖test.txt中的内容
2、在该文件下复制几行到另一个文件,但不会覆盖原内容,即追加
10,100w!>>test.txt, 注:复制10行到100行的内容追加到test.txt的结尾
输入从第几行到第几行 后输入要粘贴的位置如复制第10行到第100行的内容并粘贴到200行 :10,100 copy 200, 或者 10 ,100 co 200
剪切:3dd, p 或者: 1, 3 m 20
有时候不想费劲看多少行或复制大量行时,可以使用标签来替代
光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc
然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
要删除多行的话,可以用 :5, 9 de
光标移到起始行,输入ma
光标移到结束行,输入mb
光标移到粘贴行,输入mc
然后 :'a,'b co 'c 把 co 改成 m 就成剪切了
要删除多行的话,可以用 :5, 9 de
Ctrl-f 即 PageDown 翻页。
Crtl-b 即 PageUp 翻页。
zf 折叠, zo展开
vim 执行shell命令
1、:!cmd 或者2、 回到shell环境下 :sh 执行shell命令, ctrl + d 返回
以下依赖于ctags支持, 安装配置google:
将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)
使用时或者源码有改变时在源码顶层目录:ctags -R
gd转到当前局部变量的定义
ctrl + ]跳转到函数定义的地方
ctrl + t跳转到之前的地方
ctrl +o返回源文件
:o ..打开目录结构, 按enter进入
gd转到当前局部变量的定义
ctrl + ]跳转到函数定义的地方
ctrl + t跳转到之前的地方
ctrl +o返回源文件
:o ..打开目录结构, 按enter进入
错误配置处理: E138 can't write viminfo file
Fix your home directory owner and permissions
sudo chown - R zm.zm / home /zm
sudo chmod u + rw - R / home /zm
And finally check that no old temp files were left behind (e.g. ~/.viminf*) and that you can write in the directory of the .viminfo file.
Fix your home directory owner and permissions
sudo chown - R zm.zm / home /zm
sudo chmod u + rw - R / home /zm
And finally check that no old temp files were left behind (e.g. ~/.viminf*) and that you can write in the directory of the .viminfo file.
if you has old temp, rm -rf ~/
.viminf*.tmp
vim ^M:
:/bin/bash^M: bad interpreter,从这个提示来看是/bin/bash后面多了一个^M,我也打开看过,没见到^M,后来仔细一想,原来问题可能出现在文件格式上,
vim test.sh :set ff? fileformat=dos
提示,显示这个文件的格式是dos的,问题原来就是出来这边,下面就简单了, 只要: set fileformat=unix
如果文件为unix格式: 可使用sed -e ‘s/^M/\n/g’main.cpp去掉文件^M
(注意:这里的“^M”输入要使用“CTRL-V CTRL-M”生成,而不是直接键入“^M)
:/bin/bash^M: bad interpreter,从这个提示来看是/bin/bash后面多了一个^M,我也打开看过,没见到^M,后来仔细一想,原来问题可能出现在文件格式上,
vim test.sh :set ff? fileformat=dos
提示,显示这个文件的格式是dos的,问题原来就是出来这边,下面就简单了, 只要: set fileformat=unix
如果文件为unix格式: 可使用sed -e ‘s/^M/\n/g’main.cpp去掉文件^M
(注意:这里的“^M”输入要使用“CTRL-V CTRL-M”生成,而不是直接键入“^M)
如不成功, 可再试为:
使用vi的替换功能。启动vi,进入命令模式,输入以下命令:
:%s/^M$//g # 去掉行尾的^M。
:%s/^M//g # 去掉所有的^M。
:%s/^M/[ctrl-v]+[enter]/g # 将^M替换成回车。
:%s/^M/\r/g # 将^M替换成回车。
再不行, 可以使用linux命令: dos2unix myfile.txt
查看vim 启动时加载的脚本, vim 打开文件, 命令模式下
:scriptnames
vim 加密文件
vim -x 文件 设置文件密码
以后打开这个文件都要输入密码
清除密码:
密码验证后 , 命令模式下 set key= 保存
taglist 函数列表切换:
CTRL+WW(2次W),可以切换到函数列表区,移动到函数名称行后按ENTER即可查看函数代码。
vim -d file1 file2 比较file1 与file2 文件差异