快!用Vim 
            
            
                
        
         
         
                
                    
                         
                     
                    
 文章目录 
 简介 基操 移动 删改查 搜索替换 多文件操作 text object 赋值粘贴 macro 补全 配色  
  自定义配置 
   插件 
   Tmux neovim  
 
 
 简介  
在 Linux 平台使用 Vim 编辑器,成为NB Vimer 安装 vim 就不介绍了   
 基操  
三种模式 
  inserta:  append
i:	insert 光标处
o:	open a line below
A:	append after line
I:	insert before line
O:  append a line above
   normal(default) / command
:w	
:q	
:set nu	
:vs	
:sp	
:% s/java/python 
u	
   visualv:	visual 选择字母
V:	选中整行
Ctrl+v:	块状选择
      出错了 
  输入时,某个单词输错怎么办?   相关快捷键ctrl+h	
ctrl+w	
ctrl+u	
      insert -> normal 
  ESC ctrl+c ctrl+[ 可以配置自己喜欢的键位    回到上一次编辑的位置 
  准确来说是上一次退出 insert 模式的位置:gi,继续编辑      
 移动  
均是在 normal 模式下 快速移动 
  上下左右   w/W 移动到下一个 word 开头,e/E 移动到下一个 word 结尾,b/B 回到上一个 word 开头 
    小写表示以非空白符分割的单词,比如这句 java __! python go,还会移动到!前 大写表示以空白符分割的单词,只会移动到 j _ p g 前;不必纠结,能动就行   0 行首,$行尾gg文首,G文尾   行间搜索移动 
  normal 模式下,f{char} 搜索并移动到 char 的位置,默认搜索光标往后的; ,前一个,;后一个 F{char} 往前搜,,后一个,;前一个   页面移动 
  ctrl+f 向下翻页,ctrl+u 向上翻页zz 把当前行滚动到屏幕(terminal)中间H/M/L 光标移动到屏幕 开头/中间/结尾   命令很多,不需要刻意记忆,经常使用即可! 
  可以看到很多命令都是在 normal 模式下,大部分情况也都是在浏览,而非编辑      
 删改查  
都是在 normal 模式下 删除 
  dw 删除单词(非空白符分割),diw 删除单词,保留空格x 删除字符,可配合v 模式使用dd 删除整行,ndd 删除 n 行dt{char} 删除,直到 char 字符处(不包括char)   修改 
  r 替换,例如:ra 将光标处字符替换成 a;R 打开替换模式s 删除光标处字符并进入插入模式;S 删除整行并进入 insert 模式cw 删除单词并进入 insert 模式   查找  /{string} 搜索字符串 string,n 搜下一处,N搜上一处  * 当前单词的下一个匹配,#当前单词的上一个匹配   
 搜索替换  
命令模式下 格式::[range]s/{pattern}/{string}[flags],range 表示替换范围,:10,20表示10-20行,%表示全部文本 例如::20,23 s/python//n ,会显示匹配到多少行   使用正则::25,27 s/\<abc\>//n 完全匹配   flag 还有c和g模式,表示询问和全局替换;flag 可以不写     
 多文件操作  
几个概念 
  buffer:缓冲区 window:窗口,一个缓冲区可以存在于多个小窗口,大窗口(整个屏幕)可以打开不同的缓冲区 tab:标签页,分类文件    Buffer 
  打开一个文件,其实就创建了一个缓冲区;使用 :e xxx.txt 就打开并进入另一个缓冲区;使用 :ls 查看   跳转::b 1 跳转到第一个缓冲区;:blast 跳转到最后一个缓冲区;类似的还有 :bpre :bnext :bfirst 窗口和缓冲区   buffer 可以和文件等价    Window 
  分割方法前面说过,:vs,:sp;还可以用 ctrl+w+v ctrl+w+s 窗口间切换   一个缓冲区可以存在于多个小窗口;但操作时都是同步的   注:一个缓冲区只能有一个文件,如果使用 :vs xxx.txt 切开窗口打开其他文件,也会同时增加一个 buffer,只不过此时一个窗口包含了多个buffer 窗口编排;好像没作用?      Tag 
  相当于分类标签,将不同类的文件(buffer)聚在一起,在各自标签里可打开不同buffer(文件)切多个窗口;不常用   使用 :tabnew hello.py 可以在新的标签打开文件 常用命令          
 text object  
和主流编程语言的面向对象类似,vim 将文本视作对象,自然也就有操作对象的方法 比如一个单词,一个句子,一段话都是对象,可以使用方法快速修改删除 命令格式:[number]+<command>+模式+[text object] 
  command 包括:d(delete)/c(change)/y(yank)/v(visual) text object 包括:w(word)/s(sentence)/p(paragraph)    常用命令 
  viw 选中当前单词,不包括空格;vw会选中当前单词到下一个字符分割起始位置(一般不用)  操作成对括号/引号中 的内容;比如 vi" 快速选中当前位置双引号中的内容,ci" 快速删除双引号中的内容并进入 insert 模式        
 赋值粘贴  
normal 模式   insert 模式,一般使用 ctrl+v   删掉的东西放在寄存器   :reg a查看 a 寄存器保存的内容,"a p粘贴 a 中保存的内容  :set clipboard=unnamed 可以直接复制粘贴系统剪贴板  
 macro  
什么是宏   如何录制并回放   需求:给每行文本加上双引号 
  qa 使用 a 寄存器录制I 加双引号,A 加双引号q 退出录制到下一行,VG全选 :normal @a 在选中行回放   上面在命令行模式下执行了 normal 模式的命令,我们完全可以使用这种方式完成需求 
  VG:normal I" 给所选行开头加双引号: ctrl+p 回到上一个命令改为 A" 给末尾加上双引号      
 补全  
ctrl+n 根据文件中已存在的单词补全;如果有多个匹配项会提示,ctrl+p 选择下一个    ctrl+x+f 列出路径下的文件(夹)    
 配色  
现在的编辑器都支持更换主题,Vim 也不落后   举例   可以自己下载配色并使用,有教程       
 自定义配置  
 
 映射  
映射非常强大且复杂,掌握一些常见用法即可 基本映射   模式映射;例如在insert模式下使用normal的命令::imap <c-d> <Esc>ddi ctrl+d 删除一行(回到normal再回来)   注:要注意递归映射 和映射冲突    非递归映射:no recursion map   总而言之,只能用 nnoremap/vnoremap/inoremap   
 插件  
什么是插件   安装 vim-plug 插件管理器   参考官方给的 Usage,只保留这两行   第一个插件 
  vim-startify,开屏工具 修改配置文件并生效::source ~/.vimrc,安装::PlugInstall   就是把需要安装的插件加入插件列表 即可,非常简单 直接通过 vim 命令就可以看到效果      如何寻找需要的插件?常用的三种方式,推荐第二种;一般先有需求,再找插件     
 常用插件  
美化插件 
  良好的布局和配色让我们身心愉悦 上面安装的 vim-startify 美化了启动界面 vim-airline,美化状态栏     indentline 代码缩进线   hybrid 主题配色;~/.vimrc 添加 colorscheme hybrid      文件目录插件 
  nerdtree 目录树 vim 然后 :NERDTree,就可以看到目录  每次敲命令太麻烦,加一些配置,就可以用 ctrl+t 打开目录,并显示隐藏文件   ,+n 从打开文件中返回目录树,ctrl+w+p 再返回文件可以添加配置 autocmd VimEnter * NERDTree 让我们打开文件时就出现目录树 如何通过搜索快速找到文件?安装 ctrlp 配置:let g:ctrlp_map = '<c-p>' 使用 ctrl+p 开始搜索,打开文件后使用 ctrl+f 定位到目录树      跳转插件 
  在文件内快速跳转到某一处,可以使用移动命令,或者 / 搜索 这里使用插件:easymotion,添加配置:nmap ss <Plug>(easymotion-s2) 直接输入 ss 即可开始搜索,高亮出匹配的位置    成对编辑插件 
  normal 模式下修改成对的内容,比如双引号 vim-surround ys iw " 给选中单词加双引号(you add a surrounding),其实是使用了 visual 模式cs " ' 替换为单引号ds " 删除双引号   模糊搜索插件 
  在项目中搜索一些文本,这里使用 fzf 我们要安装 fzf 和 fzf.vim 使用:vim,:Ag [pattern] 模糊搜索字符串 ,使用::Files [path] 模糊搜索目录(相当于前面的 ctrl+p)    搜索替换插件 
      
 go  
 
 python  
jedi-vim 或者 python-mode python-mode 支持的一些配置;ctrl+] 跳转到定义处   用起来,才能遇到问题,才能熟练   
 浏览  
代码大纲插件,tagbar,还需要安装依赖 Universal Ctags 使用 :TagbarToggle 召唤出右侧大纲   高亮单词插件 lfv89 k 高亮所在单词,K 取消高亮  
 补全  
 
 格式化  
通用 代码格式化插件 neoformat例如 pip 安装 autopep8 格式化 python 代码,打开文件使用 :Neoformatlet  g:neoformat_python_autopep8 =  { 
            \  'exe' :  'autopep8' ,
            \  'args' :  [ '-s 4' , '-E' ] ,
            \  'replace' :  1 , " replace the file, instead of updating buffer (default: 0)
            \ 'stdin': 1, "  send data to stdin of formatter ( default: 0 ) 
            \  'env' :  [ "DEBUG=1" ] , " prepend environment variables to formatter command 
            \  'valid_exit_codes' :  [ 0 , 23 ] ,
            \  'no_append' :  1 ,
            \  } 
let  g:neoformat_enabled_python =  [ 'autopep8' ] 
   通用静态检查插件 ale 如果想检查 python,还需要安装 pylint;但是 pylint 的检查很严格,可以修改配置忽略一些错误 代码注释插件:vim-commentary,使用 gc 即可注释或取消注释   
 git  
在 vim 中使用 git 的插件:fugitive 使用也很简单,:Gblame,:Gdiff ,:Gcommit等 另一个插件:gitgutter,可以标记出修改、新增等 第三个插件:gv.vim,使用::GV 就可以看到提交信息   到此,介绍了很多插件,也还有很多好用的插件没提到,但是这个东西不在于多而在于满足自己的需求,经常使用达到熟练,提高效率才是目的   
 Tmux  
分屏,托管进程;可以让我们在一个窗口操作多个进程 使用手册   也可以将 vim 嵌入到开发工具中,比如 pycharm,vscode等     
 neovim  
原始的 vim 代码老旧,不支持异步等 所以有了搞了 Neovim,官网,可以尝试使用 还有一些大佬写好的 Vim 配置 
    抛砖引玉,有好的建议或者配置可以评论分享  
                 
                 
                 
         
        
              
            
            
              
                本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/187096.html 
              
              如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!