admin管理员组

文章数量:1534194

乱码问题

参考 https://blog.csdn/weixin_36250487/article/details/79888103

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

移动

  • 单纯移动到行首行尾 |,^,$ (^ 行首为字符的行首,不包含空格,| 是真正的行首)
  • 文件开头和结尾 gg,G
  • 屏幕开头、结尾和中间 H,L,M
  • 移动当前行到屏幕开头、结尾和中间 zt,zb,zz
  • 上一页、下一页 ctrl-b,ctrl-f
  • 屏幕滚动一行,向上、向下 ctrl-y,ctrl-e
  • 上一个单词、下一个单词、词尾 b(B),w(W),e(E) (大写得以不可见字符为间隔,小写的以单词为间隔)

移动并插入

  • 行首,行尾插入 I,A
  • 删除行,删除字符,删除到行尾插入 S,s,C
  • 插入上一行,下一行 O,o

删除

  • 删除到行尾 D
  • 剪切一行 dd
  • 删除到给出的位置 d,如 d^ 就是删除到行首
  • 修改到给出的位置 c,如 c^ 就是删除到行首,然后进入编辑状态

选择

  • v 从当前位置开始,移动经过的所有位置都会选中
  • V 和 v 类似,但是选择的是整行
  • ctrl-v 矩形区域选择

搜索

向下,向上搜索 / ?
是否忽略大小写,末尾添加 \c 表示忽略,\C 表示不忽略(默认)

替换

# 全文替换, % 表示所有行,g 表示每行匹配所有
:%s/old/new/g
# 替换 1-10 行的所有 old
:1,10s/old/new/g
# 替换当前行和接下来两行,并且每次替换都要确认
:.,+2s/old/new/gc
# 选取替换,可以进入 Visual 后选取
# 在 Visual 模式下选择区域后输入 :,Vim 即可自动补全为 :'<,'>
:'<,'>s/old/new/g

批量匹配删除

# 删除所有以 xyz 开头的行
:g/^xyz/d
# 反向删除
:v/^xyz/d

格式化

  • :filetype 查看是否开启文件类型检测,自动加载该文件类型插件,缩进
  • filetype detection:ON plugin:ON indent:ON
  • 如果没有开启就把他们开启,查看当前文件类型::set filetype
  • 格式化具体步骤
  • 设置文件类型为 html::set filetype=html,如果已经是了就不用设置
  • 打开缩进::filetype indent on
  • 如果上面设置过,就要重新加载文件,否则不用::e
  • 格式化:gg=G
  • gg 表示移动到开头,= 表示格式化,G 表示格式化到末尾

列编辑

    1. ⌃-v 进入 visual block 模式,选择多行
  1. 输入 d 删除所有选中内容
  2. 输入 ⇧-i 进行编辑插入,插入完成后退出编辑,就会补上多行内容

set 设置

  • 搜索内容高亮/取消 set hlsearch set nohlsearch

其他

  • 在修改 .vimrc 时,以双引号开头的一行为注释,而不是 # 开头

本文标签: 常用操作vim