VIM使用笔记
2015-11-23 15:16
351 查看
vim配置文件:
普通用户:~/.vimrcroot:/root/.vimrc
hi Comment ctermfg =green //注释颜色 hi String ctermfg =darkred //修改字符串颜色 hi Type ctermfg =yellow //修改类型颜色 hi Number ctermfg =darkblue //修改数字颜色 hi Constant ctermfg =blue //修改常量颜色 hi Statement ctermfg =darkyellow //修改声明颜色 (hi也可用highlight)
vim插件
1.wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x 2.YCM http://www.alexeyshmalko.com/2014/youcompleteme-ultimate-autocomplete-plugin-for-vim/[/code]vim常用命令
增删改插: A:在行末插入字符 a:在光标后插入字符 i:在光标前插入字符 I:在行首插入字符 r{char}:替换光标处字符为字符char cw/ce:替换光标所在处到该单词结尾的字符 o:在下一行新增一行输入字符 O:在上一行新增一行输入字符 x:删除光标处字符 X:删除光标处前一个字符 字符串相关: :/word //向下查找word字符串 :?word //向上查找word字符串 :%s /abc /efg /g //将所有abc字符串替换为efg字符串 文件操作: :e <path/to/file> //打开文件 :wq/:x/ZZ //保存并退出文件 :q! //强制退出不保存文件 :qa! //强制退出所以正在编辑的文件 :saveas <path/to/file> //另存为文件 多文件操作: vim file1 file2 ... filen //打开所有想要打开的文件 :e file //再打开一个文件,并且此时vim里会显示出file文件的内容 :split //水平切分窗口 :vsplit //垂直切分窗口 :bn //下一个文件 :bp //上一个文件 :ls //列出打开的文件,带编号 :b1~n //切换至第n个文件 <C-6> //两文件间的切换 <C-w><dir> //切换到前/下/上/后一个窗格 <C-w>h/j/k/l //同上 <C-w>w //依次向后切换到下一个窗格中 <C-w>_ //最大化窗口尺寸 <C-v>+/- //增加/减小窗口尺寸鼠标位置移动:
行内移动: 0:移动到行首 ^:移动到本行第一个非blank字符 $:移动到行尾 g_:移动到行尾最后一个非blank字符 h:相对当前位置向左移动n个字符 l:相对当前位置向右移动n个字符 fa:跳到相对想在位置向右的第n个字符为a的地方 ta:跳到相对想在位置向右的第n个字符为a的前一个字符处 页内移动: j:相对当前位置向下移动到n行 k:相对当前位置向上移动到n行 gg:跳到第n行 G:跳到第n行,G为跳到页末 e:跳到相对想在位置向右的第n个单词的最后一个字符 w:跳到相对想在位置向右的第n个单词的第一个字符 %:匹配括号移动 *:匹配光标当前所在的单词,向下移动光标到第n个匹配单词 #:匹配光标当前所在的单词,向上移动光标到第n个匹配单词快捷操作
1.多字符操作: <start position><command><end position> 例: 0y$:将本行第一个到最后一个字符复制下来 0gU$:将本好第一个到最后一个字符变为大写 0gu$:将本好第一个到最后一个字符变为小写 2.区域选择: <action>a<object> 或 <action>i<object> 例:假设你有一个字符串 (map (+) ("foo")).而光标键在第一个 o 的位置。(借用陈皓的例子,我也曾经学习 他的《VIM简明教程》和《跟我一起写makefile》,很赞的牛人,这是他的博客,http://coolshell.cn,有时 间就去溜溜呗!) vi":选择""之间的foo,不包括"" va":选择""之间的foo,包括"" vi):会选择 "foo" va):会选择("foo") v2i):会选择 map (+) ("foo") v2a):会选择 (map (+) ("foo")) 3.块操作: [0/^]<C-v><dir><operation><ESC> 例:选择3行代码块的每行末尾添加字符串"feison" 0<C-v>2j$Afeison<ESC> 选择3行代码块的每行行首插入字符串"--" 0<C-v>2jI--<ESC> 注: 特殊<operation> 1.>向右缩进 2.<向左缩进 3.=自动缩进 4.J把所有行连接成一行 4.宏录制: qa <operation list> q @a/ @@ qa:开启宏录制并将操作记录到寄存器a <operation list>:操作序列 q:退出宏录制 @a:按录制的宏a操作一次 例:qypq:复制当前行并粘贴 @a:执行该动作一次 10@@:执行该动作10次 5.自动提示: <C-n>/<C-p> 6.执行外部shell命令: :!<cmd>寄存器操作
1.官方帮助手册 :h registers 2.寄存器分类 2.1.无名(unnamed)寄存器:"",缓存最后一次操作内容; 2.2.数字(numbered)寄存器:"0 ~ "9,缓存最近操作内容,复制与删除有别, "0寄存器缓存最近一次复制的内容,"1-"9缓存最近9次删除内容 2.3.行内删除(small delete)寄存器:"-,缓存行内删除内容; 2.4.具名(named)寄存器:"a ~ "z或"A - "0Z,指定时可用; 2.5.只读(read-only)寄存器:":, "., "%, "#,分别缓存最近命令、最近插入文本、当前文件名、当前交替文件名; 2.6.表达式(expression)寄存器:"=,只读,用于执行表达式命令; 2.7.选择及拖拽(selection and drop)寄存器:"*, "+, "~,存取GUI选择文本,可用于与外部应用交互,使用前提为系统剪切板(clipboard)可用; 2.8.黑洞(black hole)寄存器:"_,不缓存操作内容(干净删除); 2.9.模式寄存器(last search pattern):"/,缓存最近的搜索模式。 3.查看寄存器内容 :reg 查看所有寄存器内容 :reg 寄存器名 查看单个寄存器内容 4.寄存器操作: normal模式下,"<reg>[y/p]表示复制内容到寄存器,粘贴寄存器内容指定位置 从vim内容与外部内容之间的拷贝:"+y(+寄存器是外部和vim通用寄存器)vim常用命令示意图
相关文章推荐
- 随机梯度下降(Stochastic gradient descent)和 批量梯度下降(Batch gradient descent )
- telnet用法 测试端口号
- 忘记了mysql登陆密码
- Word中如何让两个图片垂直居中对齐
- 此博客停止更新,迁移至www.zhanmingjie.com
- 图像处理中的数学原理详解14——曲面积分
- 596 C. Wilbur and Points
- 使用matlab中的VideoReader函数读取,保存,显示,播放视频
- Java 内存结构备忘录
- 如何得到下个月一整月的天数
- 自编scanf函数
- 每隔一秒自动执行函数(JavaScript)
- CSDN网站系统升级公告
- 这是一个简单的洗牌实例
- [转]Mysql支持的数据类型(总结)
- IDEA快捷键整理
- svn api
- In Gradle projects, always use http://schemas.android.com/apk/res-auto
- SuperMap iClient如何使用WFS服务
- 韦东山第三期视频电子书项目轮询输入实验的相关说明