移动光标

  1. hjkl
  2. 2w 向前移动两个单词
  3. 3e 向前移动到第 3 个单词的末尾
  4. 0 移动到行首
  5. $ 当前行的末尾
  6. gg 文件第一行
  7. G 文件最后一行
  8. 行号+G 指定行
  9. <ctrl>+o 跳转回之前的位置
  10. <ctrl>+i 返回跳转之前的位置

退出

  1. <esc> 进入正常模式
  2. :q! 不保存退出
  3. :wq 保存后退出

删除

  1. x 删除当前字符
  2. dw 删除至当前单词末尾
  3. de 删除至当前单词末尾,包括当前字符
  4. d$ 删除至当前行尾
  5. dd 删除整行
  6. 2dd 删除两行

修改

  1. i 插入文本
  2. A 当前行末尾添加
  3. r 替换当前字符
  4. o 打开新的一行并进入插入模式

撤销

  1. u 撤销
  2. <ctrl>+r 取消撤销

复制粘贴剪切

  1. v 进入可视模式
  2. y 复制
  3. p 粘贴
  4. yy 复制当前行
  5. dd 剪切当前行

状态

  1. <ctrl>+g 显示当前行以及文件信息

查找

  1. / 正向查找(n:继续查找,N:相反方向继续查找)
  2. ? 逆向查找
  3. % 查找配对的 {,[,(
  4. :set ic 忽略大小写
  5. :set noic 取消忽略大小写
  6. :set hls 匹配项高亮显示
  7. :set is 显示部分匹配

替换

  1. :s/old/new 替换该行第一个匹配串
  2. :s/old/new/g 替换全行的匹配串
  3. :%s/old/new/g 替换整个文件的匹配串

折叠

  1. zc 折叠
  2. zC 折叠所有嵌套
  3. zo 展开折叠
  4. zO 展开所有折叠嵌套

执行外部命令

  1. :!shell 执行外部命令

.vimrc

.vimrc 是 Vim 的配置文件,需要我们自己创建:

  1. cd Home // 进入 Home 目录
  2. touch .vimrc // 配置文件
  3. # Unix
  4. # vim-plug
  5. # Vim
  6. curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
  7. https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
  8. # Neovim
  9. curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
  10. https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

其他平台,可以查看 vim-plug。


基本配置

取消备份

  1. set nobackup
  2. set noswapfile

文件编码

  1. set encoding=utf-8

显示行号

  1. set number

取消换行

  1. set nowrap

显示光标当前位置

  1. set ruler

设置缩进

  1. set cindent
  2. set tabstop=2
  3. set shiftwidth=2

突出显示当前行

  1. set cursorline

查找

  1. set ic
  2. set hls
  3. set is

左下角显示当前 vim 模式

  1. set showmode

代码折叠

  1. # 启动 vim 时关闭折叠代码
  2. set nofoldenable

主题

  1. syntax enable
  2. set background=dark
  3. colorscheme solarized
  4. altercation/vim-colors-solarized
  5. Anthony25/gnome-terminal-colors-solarized

插件配置

树形目录

  1. Plug 'scrooloose/nerdtree'
  2. Plug 'jistr/vim-nerdtree-tabs'
  3. Plug 'Xuyuanp/nerdtree-git-plugin'
  4. autocmd vimenter * NERDTree
  5. map <C-n> :NERDTreeToggle<CR>
  6. let NERDTreeShowHidden=1
  7. let g:NERDTreeShowIgnoredStatus = 1
  8. let g:nerdtree_tabs_open_on_console_startup=1
  9. let g:NERDTreeIndicatorMapCustom = {
  10. \ "Modified" : "✹",
  11. \ "Staged": "✚",
  12. \ "Untracked" : "✭",
  13. \ "Renamed" : "➜",
  14. \ "Unmerged" : "═",
  15. \ "Deleted" : "✖",
  16. \ "Dirty" : "✗",
  17. \ "Clean" : "✔︎",
  18. \ 'Ignored' : '☒',
  19. \ "Unknown" : "?"
  20. \ }
  21. # o 打开关闭文件或目录
  22. # e 以文件管理的方式打开选中的目录
  23. # t 在标签页中打开
  24. # T 在标签页中打开,但光标仍然留在 NERDTree
  25. # r 刷新光标所在的目录
  26. # R 刷新当前根路径
  27. # X 收起所有目录
  28. # p 小写,跳转到光标所在的上一级路径
  29. # P 大写,跳转到当前根路径
  30. # J 到第一个节点
  31. # K 到最后一个节点
  32. # I 显示隐藏文件
  33. # m 显示文件操作菜单
  34. # C 将根路径设置为光标所在的目录
  35. # u 设置上级目录为根路径
  36. # ctrl + w + w 光标自动在左右侧窗口切换
  37. # ctrl + w + r 移动当前窗口的布局位置
  38. # :tabc 关闭当前的 tab
  39. # :tabo 关闭所有其他的 tab
  40. # :tabp 前一个 tab
  41. # :tabn 后一个 tab
  42. # gT 前一个 tab
  43. # gt 后一个 tab
  44. scrooloose/nerdtree
  45. vim-nerdtree-tabs
  46. nerdtree-git-plugin

代码,引号,路径补全

  1. Plug 'Valloric/YouCompleteMe'
  2. Plug 'Raimondi/delimitMate'
  3. Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
  4. Valloric/YouCompleteMe
  5. Raimondi/delimitMate
  6. Shougo/deoplete.nvim

语法高亮,检查

  1. Plug 'sheerun/vim-polyglot'
  2. Plug 'w0rp/ale'
  3. let g:ale_linters = {
  4. \'javascript': ['eslint'],
  5. \'css': ['stylelint'],
  6. \}
  7. let g:ale_fixers = {
  8. \'javascript': ['eslint'],
  9. \'css': ['stylelint'],
  10. \}
  11. let g:ale_fix_on_save = 1
  12. let g:ale_sign_column_always = 1
  13. let g:ale_sign_error = '●'
  14. let g:ale_sign_warning = '▶'
  15. nmap <silent> <C-k> <Plug>(ale_previous_wrap)
  16. nmap <silent> <C-j> <Plug>(ale_next_wrap)
  17. w0rp/ale
  18. sheerun/vim-polyglot

文件,代码搜索

  1. Plug 'rking/ag.vim'
  2. Plug 'kien/ctrlp.vim'
  3. kien/ctrlp.vim
  4. ggreer/the_silver_searcher
  5. rking/ag.vim

加强版状态栏

  1. Plug 'vim-airline/vim-airline'
  2. Plug 'vim-airline/vim-airline-themes'
  3. let g:airline_theme='papercolor'
  4. vim-airline/vim-airline
  5. vim-airline/vim-airline-themes

代码注释

  1. Plug 'scrooloose/nerdcommenter'
  2. # <leader>cc // 注释
  3. # <leader>cm 只用一组符号注释
  4. # <leader>cA 在行尾添加注释
  5. # <leader>c$ /* 注释 */
  6. # <leader>cs /* 块注释 */
  7. # <leader>cy 注释并复制
  8. # <leader>c<space> 注释/取消注释
  9. # <leader>ca 切换 // 和 /* */
  10. # <leader>cu 取消注释
  11. let g:NERDSpaceDelims = 1
  12. let g:NERDDefaultAlign = 'left'
  13. let g:NERDCustomDelimiters = {
  14. \ 'javascript': { 'left': '//', 'leftAlt': '/**', 'rightAlt': '*/' },
  15. \ 'less': { 'left': '/**', 'right': '*/' }
  16. \ }
  17. scrooloose/nerdcommenter

git

  1. Plug 'airblade/vim-gitgutter'
  2. Plug 'tpope/vim-fugitive'
  3. airblade/vim-gitgutter
  4. tpope/vim-fugitive

Markdown

  1. Plug 'suan/vim-instant-markdown'
  2. let g:instant_markdown_slow = 1
  3. let g:instant_markdown_autostart = 0
  4. # :InstantMarkdownPreview
  5. suan/vim-instant-markdown

Emmet

  1. Plug 'mattn/emmet-vim'
  2. let g:user_emmet_leader_key='<Tab>'
  3. let g:user_emmet_settings = {
  4. \ 'javascript.jsx' : {
  5. \ 'extends' : 'jsx',
  6. \ },
  7. \ }
  8. mattn/emmet-vim

html 5

  1. Plug'othree/html5.vim'
  2. othree/html5.vim

css 3

  1. Plug 'hail2u/vim-css3-syntax'
  2. Plug 'ap/vim-css-color'
  3. augroup VimCSS3Syntax
  4. autocmd!
  5. autocmd FileType css setlocal iskeyword+=-
  6. augroup END
  7. hail2u/vim-css3-syntax
  8. ap/vim-css-color

JavaScipt

  1. Plug 'pangloss/vim-javascript'
  2. let g:javascript_plugin_jsdoc = 1
  3. let g:javascript_plugin_ngdoc = 1
  4. let g:javascript_plugin_flow = 1
  5. set foldmethod=syntax
  6. let g:javascript_conceal_function = "ƒ"
  7. let g:javascript_conceal_null = "ø"
  8. let g:javascript_conceal_this = "@"
  9. let g:javascript_conceal_return = "⇚"
  10. let g:javascript_conceal_undefined = "¿"
  11. let g:javascript_conceal_NaN = "ℕ"
  12. let g:javascript_conceal_prototype = "¶"
  13. let g:javascript_conceal_static = "•"
  14. let g:javascript_conceal_super = "Ω"
  15. let g:javascript_conceal_arrow_function = "⇒"
  16. let g:javascript_conceal_noarg_arrow_function = " "
  17. let g:javascript_conceal_underscore_arrow_function = " "
  18. set conceallevel=1
  19. pangloss/vim-javascript

(注:上述脚本中存在特殊字符,有的情况下显示不正确,请直接用上述链接的内容。)

React

  1. Plug 'mxw/vim-jsx'
  2. let g:jsx_ext_required = 0
  3. mxw/vim-jsx

Prettier

  1. Plug 'prettier/vim-prettier', {
  2. \ 'do': 'yarn install',
  3. \ 'for': ['javascript', 'typescript', 'css', 'less', 'scss', 'json', 'graphql'] }
  4. let g:prettier#config#bracket_spacing = 'true'
  5. let g:prettier#config#jsx_bracket_same_line = 'false'
  6. let g:prettier#autoformat = 0
  7. autocmd BufWritePre *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql PrettierAsync
  8. # :Prettier
  9. prettier/vim-prettier

转载自:https://linux.cn/article-8997-1.html

vim助手的更多相关文章

  1. vim经常使用命令总结

    vim 选择文本,删除,复制,粘贴   文本的选择,对于编辑器来说,是非常主要的东西,也常常被用到,总结例如以下: v    从光标当前位置開始,光标所经过的地方会被选中,再按一下v结束. V     ...

  2. 【程序猿助手】Emacs,最强的编辑器,之间的不

     wx_fmt=png" alt="" style="max-width:100%; height:auto!important"> 内容简单 ...

  3. 【程序员小助手】Emacs,最强编辑器,没有之一

    内容简介 1.Emacs简介 2.Emacs三个平台的安装与配置 3.自动补全插件 4.小编的Emacs配置文件 5.常用快捷方式 6.和版本控制系统的配合(以SVN为例) [程序员小助手]系列 在这 ...

  4. vim插件安装总结

    vim插件安装总结 vim 插件 vundle 插件对于vim来说是一个杀手级别的神器助手,能自动补全,语法高亮,文件搜索等等,有效地提升了编程效率.下面就个人的一些安装和使用进行一个总结. 自动管理 ...

  5. Vim 中文社区:期待你的加入

    我们的愿景 Vim 中文社区一直比较零散,缺少凝聚力,现有的一些群经常也是水的可以的,讨论各种无关紧要的内容,于是导致很大一部分人,将这些群丢入了群助手,渐渐地他们也淡出了 vim 中文社区. 而我理 ...

  6. 学习Vim的四周计划

    来源:Python程序员 ID:pythonbuluo vim具有自定义配色方案,语法高亮,linting和自动填充功能 Vim是一个以非常难学而闻名的命令行文本编辑器(有个关于Vim的笑话:问如何生 ...

  7. Markdown 图片助手-MarkdownPicPicker

    title: Markdown 图片助手 v0.1 toc: true comments: true date: 2016-06-04 16:40:06 tags: [Python, Markdown ...

  8. 如何创建Vim Dotfile?

    Dotfile是电脑系统里的隐藏文件,它是专门给更高级的用户,如开发者.程序员或工程师使用的,让他们用来调整系统.如何创建Vim-Dotfile? 可以参考以下步骤: 1. 首先,你要检查一下.vim ...

  9. [C#] 简单的 Helper 封装 -- SecurityHelper 安全助手:封装加密算法(MD5、SHA、HMAC、DES、RSA)

    using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Wen. ...

随机推荐

  1. week5-Internetwork Layer

    Technology:Internets and Packets course Layer 2 : Internet Protocol The InterNetwork Internetwork La ...

  2. beta 圆桌桌 4

    031602111 傅海涛 1.今天进展 后台接口大部分完善,并完成交互 2.存在问题 部分接口不稳定 3.明天安排 完成全部接口的交互 4.心得体会 小问题真多,要一个一个解决 031602115 ...

  3. 【Leetcode】535. Encode and Decode TinyURL

    Question: TinyURL is a URL shortening service where you enter a URL such as https://leetcode.com/pro ...

  4. 新版vue-cli如何使用json-server来mork

    新版vue-cli如何使用json-server来mork 原创 2018年03月06日 11:28:32 标签: vue / 前端 / webpack / vue-cli 185 新版的vue-cl ...

  5. Mybatis中jdbcType和javaType、typeHandler的对照关系

      JdbcType与Oracle.MySql数据类型对应列表,及 JdbcType Oracle MySql CHAR CHAR CHAR VARCHAR VARCHAR VARCHAR LONGV ...

  6. 实体框架自定义代码优先约定(EF6以后)

    仅限EF6仅向前 - 此页面中讨论的功能,API等在实体框架6中引入.如果您使用的是早期版本,则部分或全部信息不适用. 使用Code First时,您的模型是使用一组约定从您的类计算的.默认的Code ...

  7. MySQL的IFNULL解决判空问题

    问题:mybatis返回的null类型数据消失,导致前端展示出错 思路:如果查询出的结果是空值,应当转换成空字符串.当然在前端也能进行判断,但要求后台实现这个功能. 解决方案: 使用如下方法查询: S ...

  8. 【转】如何向XML内插入一个字符串片段

    转自:http://bbs.csdn.net/topics/190051229   5楼 string filepath = Server.MapPath("你的xml文件"); ...

  9. HGOI20180904(NOIP2018模拟sxn出题)

    sol 输入n和H表示n个人,选H个人gcd最大抓住排列,是x[1,n]的正整数,是连续的整数,假设现在最大的公因数是k其中k一定是在[1,n]那么在排列中最多出现的个数为w那么kw是最大的含有因数k ...

  10. 移动H5开发入门教程:12点webAPP前端开发经验

    如果你是一名移动H5前端开发人员,25学堂的小编认为下面的分享的12点webAPP前端开发经验是你必须掌握的基础知识点.算是一篇移动H5开发入门教程吧! 1. viewport:也就是可视区域.对于桌 ...