1. 配置快捷键
1.四种模式:normal,insert,visual,command2.映射 map:imap,nmap,vmap,cmap noremap:inoremap,nnoremap,vnoremap,cnoremap3.Visual Studio 快捷键 0.VsVim配置 Optins->VsVim-> Defaults:Use Editor Command Margin->False (否则,有命令框) Keyboard:set your Keyboard ->include All Scopes 1.VsVimrc路径 home下,_vsvimrc 2.Vs命令查看方式: 英语环境 Tools->Options->Environment->Keyboard View->OtherWindow->Command Window 3.在vim中调用快捷命令 :vsc VAssistX.OpenFileInSolutionDialog
2.vim的常用命令
1.normal模式下 1.移动 .基本移动 hjkl j:下 k:上 h:左 l:右 .单词移动 w:word "跳转到单词的头" W:WORD e:word's end "跳转到单词的结尾" E:WORD's end ge:word's end "跳转到上一个单词的结尾" gE:WORD's end b:back "跳转到单词的头" B:back "跳转到WORD的头" .行移动 _: 跳转到行的第一个字符 0: 跳转到行首 $: 跳转到行的最后一个字符 .缩进行 >> :向右缩进 < visual v-> normal 字符可视模式 v ->normal or 块模式下插入: c-V:进入块模式,并选择好区域 I 在所选区域前,进入块插入模式(插入的内容会在所有列都插入) A 在所选区域后,进入块插入模式(插入的内容会在所有列都插入) c 删除所选区域内容,并进入块插入模式(插入的内容会在所有列都插入) C 删除所选区域以及所选区域后的所有内容,并且进入块插入模式(插入的内容会在所有列都插入) 退出到normal模式 c-g:切换可视模式和选择模式 可用命令: 移动:hjkl 查找:f{char} ; , n/N 删除:c C d x s 其他命令: o: 切换选中区域的首和尾 U: 选中的字符全部大写 u: 选中的字符全部小写 ~:选中的字符切换大小写 组合命令: ve/vw/viw:选中一个单词 vu:光标下的字符小写 vU:光标下的字符大写 veu/U:选中一个单词小写/大写4.command模式 在normal模式或者visual模式下输入冒号:,进入命令模式 normal模式下的命令,可以在命令模式下运行 command下也可以运行ex命令 :com[mand] 列出所有用户自定义的命令 基本命令: :w[a] [全部]写入(保存) :q[a] [全部]退出 :c[a] [全部]关闭buffer :x[a] [全部]和:wq类型,当文件有修改时候,会写入 :[range]copy/co/t {address} 将范围内的行复制到目标地址处 {address}使用符号 :[range]move {address} 将范围内的行移动到目标地址处 :normal 命令,在命令行中执行normal模式下的命令 如果是visual模式,会呈现 :'normal 会在每一行都执行命令5.命令范围 .command模式下 vim中,在单个文件中, 1.以行号为地址 2.此外,还有一些特殊符号表示地址,例如: % 整个文件(:1,$的简写形式) . 光标所在位置。当前位置 1 文件第一行 $ 文件最后一行 0 虚拟行,位于文件第一行上方 'm 包含标记m的行 ' 高亮选区的结束行 范围的表示用逗号隔开,例如 add1,add2 :12,15d 表示删除12行到15行内容 :[range]d[elete] [x] {count} "x到代表寄存器x里" .normal模式下 normal中的一些命令,可以指定运行次数,例如: 2dd 运行两次dd->删除两行 2yy 运行两个yy->复制两行
3.mark和跳转
mx:添加本文件"书签"xmX:添加全局"书签"X`x:跳转到书签x所在的行和列'x:跳转到书签x所在行``:跳转到本文件上次离开的位置gi:跳转到上一次插入的位置gv:跳转到上一次进入visual的位置
4.VsVim的配置
1.重要配置 set backspace=indent,eol,start "退格键设置" set clipboard=unnamed "默认的剪切寄存器" set ignorecase "忽略大小写"2.推荐配置 1.注释 :vnoremap ci :s/^///// :vnoremap cu :s////// :nnoremap ci :s/^///// :nnoremap cu :s////// 2.相关配置 .单个文件中: :inoremap jj "退出插入模式" :noremap gd zz "跳转到定义" :nnoremap gq == "代码格式format" :vnoremap gq == :nnoremap za "折叠" :nnoremap zm :vsc VAssistX.ListMethodsInCurrentFile "函数列表" :nnoremap cj :vsc VAssistX.FindReferencesinFile "当前文件中的引用" :nnoremap ca :vsc VAssistX.FindReferences "查看所有引用" :nnoremap cm :vsc File.OpenContainingFolder "打开所在文件夹" :nnoremap zj :vsc Edit.QuickInfo "查看函数定义文档" :nnoremap zp :vsc VAssistX.RefactorImplementInterface "实现接口" "visual模式中的查找" :vnoremap * "/y// :vnoremap # "/y?/ .多文件 :nnoremap :vsc View.NavigateBackward :nnoremap :vsc View.NavigateForward "打开查看类的对话框 :nnoremap cs :vsc VAssistX.FindSymbolDialog "打开查看文件的对话框 :nnoremap cf :vsc VAssistX.OpenFileInSolutionDialog "open VAOutline :nnoremap co :vsc VAssistX.VAOutline "打开解决方案资源管理器 :nnoremap cv :vsc View.SolutionExplorer "在文件中查找 :nnoremap ck :vsc Edit.FindinFiles "end3.配置文件 source filefullPath "读取filefullPath的配置内容,并运行"
5.寄存器介绍和使用
vim提供了几十组寄存器,用于保存文本为命令添加 "{register} 表示指定要使用的寄存器。若不指定,将缺省用unnamed无名寄存器 "x 表示引用了寄存器x"" unnamed 无名寄存器,如果没有指定要使用的寄存器,vim会缺省使用此寄存器"_ 黑洞寄存器(实际上并没有存储,如果"_d{motion}会执行真正的删除)"0 复制专用寄存器 (复制的时候,不仅会把内容拷贝到无名寄存器中,还会拷贝到此寄存器)"a-"z a-z寄存器(26个英文字母都是寄存器的名字)"+ 系统剪贴板寄存器 (使用"+p来粘贴系统剪贴板的内容)(X11剪切板,用剪切、复制与粘贴命令操作)"* 选择专用寄存器 (X11主剪切板,用鼠标中断操作)"= 表达式寄存器.在插入模式下c-r= ,会进入命令行模式,输入表达式回车之后的结果将插入文本中"% 存储了当前文件名"# 存储了轮换文件名". 存储了上次插入的文本": 存储了上次执行的Ex命令"/ 存储了上次查找的模式使用示例:"fyy 将复制的内容存储到f寄存器"fp 将f寄存器中的内容粘贴出来:reg[ister] "{register} 查看{register}中的内容
6.宏
把命令序列录制成宏在normal,q键开始/停止录制宏。开始录制: q{register} 表示指定将宏录制到哪个寄存器中停止录制: 再次按q,停止录制@{register} 表示执行寄存器中的命令@@ 重复最近调用过的宏[count]@{register} 执行count次宏 串行方式:reg {register} 查看寄存器中的内容追加: qa 录制按键操作,并覆盖a寄存器中原有内容 qA 录制按键操作,并追加到a寄存器中在插入模式中,插入寄存器中的内容:c-r{register} 将寄存器中的内容插入到文本中.多次执行宏: 串行和并行。在处理错误的方式中,串行遇到错误,就返回。 1.串行 [count]@{register} 2.并行 :'normal @{register}.迭代求值的方式给列编号 使用了表达式寄存器(=),以便插入的时候,可以进行运算 (不要试图控制每次执行多少遍宏(vim 函数)) let i=0 qa 0f[ls=ij :let i+=1 q.编辑宏 宏中使用的是键盘编码, 如果使用{register}的方式获取的寄存器内容不一样。 不过,可以使用将寄存器中的内容粘贴出来的方式。 1.输出到文本中编辑 "{register}p 会粘贴到光标后,所以,用:put 输出到下一行 :put {register} 将寄存器内容输入到文本中 编辑完成之后, "{register}dd 注意,Windows下,可能会将末尾的^M也粘贴进去。可以使用选中->删除到寄存器中 将文本内容删除并读取到寄存器中 2.使用函数 :let @{register}=......
7.替换
:[range]s/{original}/{new}/[g] g表示全部替换,否则只替换第一个遇到的
8.小技巧
1.ctrl+h 删除前一个字符,相当于退格键ctrl+w 删除前一个单词ctrl+u 删除至行首2.num :第一个遇到的数字加num num :第一个遇到的数字减num
tips:
:help [ index帮助文档中,所有命令
手机福利视频播放器推荐 | |||
豆奶视频 | 丝瓜视频 | avbobo | 包子视频 |
秋秋影视 | 香蕉视频 | 蜜瓜电影 | 茄子视频 |
磁力吧 | 怡春院 | 电影港 | 食色抖音 |
私密免费观看直播吧 | 逗别看 | 唇色直播 | 影豆网 |
苦瓜网 | 尘落电影网 | 4k屋 | 火豆电影网 |