Skip to content

Latest commit

 

History

History
166 lines (129 loc) · 8.8 KB

02-Vim常用指令.md

File metadata and controls

166 lines (129 loc) · 8.8 KB

一、简介

  • vi是”visual interface”的简称, 它在Linux上的地位就仿佛Windows中的记事本一样. 它可以执行编辑、删除、查找、替换、块操作等众多文本操作, 而且用户可以根据自己的需要对其进行定制。本体非常简洁,但可扩展性非常的高。
  • vi是一个文本编辑程序, 没有菜单, 只有命令,vim更高级一些, 可以理解是vi的高级版本。
  • vim有时候需要自行安装, 在shell中输入vimtutor命令可以查看相关的帮助文档。
  • 推荐使用这个小游戏来熟悉vim基础操作:https://vim-adventures.com/

二、三种工作模式:命令模式、文本输入模式、末行模式

  • 命令模式:使用VIM编辑器时,默认处于命令模式。在该模式下可以移动光标位置,可以通过快捷键对文件内容进行复制、粘贴、删除等操作。

  • 末行模式:在命令模式下输入冒号:即可进入末行模式,可以在末行输入命令来对文件进行查找、替换、保存、退出等操作。

  • 编辑模式:在命令模式下输入冒号:即可进入末行模式,可以在末行输入命令来对文件进行查找、替换、保存、退出等操作。

    1682505922304
  • 进入vim:直接输vim,或者vim+要打开的文件,或者vim+要创建的文件

三、命令模式下操作:

vim 的命令很多都有两部分组成:操作动作

  • 操作是用于对文本内容进行操作的命令,比如:y复制、d剪切、c替换插入,=自动缩进
  • 动作是指移动光标的命令,用来限定范围,等 比如:数字、hjkl上下左右,w/e/b单词移动,f查找移动
  • 查看操作符:h operator查看动作:h motion:h motion.txt

整体命令

  • 以行为单位操作的语法[数字] + 操作符 + [数字] + 操作符,用数字来控制该操作符能操作的范围,d2d删除两行,4c2c替换8行,等价于c8c8cc

    • 前后两个操作符一样。
    • 第一个数字表示执行"操作符 + 数字 + 操作符"的次数,默认为1。
    • 第二个数字为从当前行开始,向下操作的行数(包括当前行),默认为1
  • 操作符和动作的语法``[数字] + operator + [数字] + motion[数字] + operator + [数字] + operator`

  • 操作符结合文本对象语法[数字] + operator + [数字] + text-object

  • 按完操作再按动作,表示对动作范围内执行操作,如c8l表示替换后面8个字符(先数字再字母)。

  • 按两下动作表示对一行执行操作,比如dd剪切一行,cc更改一行,yy复制一行

  • 数字加按键组合也好用,3o在下面插入3空行、8h向左移8位

下面是一些具体的操作方式:

  • ZZ(大写):保存退出
  • gg=G:代码格式化
  • 光标移动:
    • hjkl右,可以和数字搭配,4h就是左4格。
    • w移动到一个单词开头,e移动到单词结尾,b移动到前一个单词开头,4w就是移动四个单词
    • gg光标移动到文件开头,G文件末尾
    • 0光标移动到行首,$行尾
    • nG行跳转,如12G为移动到12行
    • f+字母将光标移动到最近的对应字母
    • ctrl + u:向下翻半屏(up)--光标向上移动
    • ctrl + d:向上翻半屏(down)--光标向下移动
  • 复制粘贴
    • 复制:用y(yank)与其它键组合;yaw复制一个单词;yy:复制当前行;y4j复制当前行在内的下4行内容;nyy:复制n行,yi“赋值引号内所有内容(字符串)
    • 粘贴:大P:在光标所在位置向下新开辟一行, 粘贴 ;小p:下
    • 剪切:ddndd
  • 删除命令
    • 小x:删除光标后一个字符,相当于Delete
    • 大X:删除光标前一个字符,相当于Backspace
    • dw:删除光标开始位置的字符,包含光标所在字符
    • d0:删除光标前本行所有内容,不包含光标所在字符
    • dd:剪切一行
    • ndd:剪切当前行向下多行
    • v/ctrl+v:使用h、j、k、l移动选择内容, 然后按d删除其中ctrl+v是列模式, v为非列模式
  • 撤销u,反撤销Ctrl + r
  • 替换
    • r:替换当前字符
    • R:替换当前行光标后的字符
  • 查找
    • /xxxx:从光标所在的位置开始搜索,按n向下搜索,按N向上搜索
    • ?xxxx:从光标所在的位置开始搜索, 按n向上搜索, 按N向下搜索
    • #:将光标移动到待搜索的字符串上, 然后按n向上搜索,但N向下搜索
    • shift+k:在待搜索的字符串上按shift+k或者K, 可以查看相关的帮助文档
  • 可视模式v进入,移动光标就会选中内容
  • 切换到文本模式
    • 小i:(insert) 光标前插入;小a:(append) 光标后插入
    • 大I:光标行行首插入;大A:光标行行尾插入
    • 小o:光标前插入一行;大O:光标后插入一行
    • c:change改变,删除原有内容并进入写入模式,cc改变一行,光标在单词开头时caw改变一个单词,光标在词中时ciw改变一个单词,ci“可以改变引号内所有内容(字符串)

四、末行模式

  • 在命令行模式输入冒号进入末行模式,末行模式按下两次ESC回到命令模式
  • 保存退出
    • q:退出
    • q!:强制退出不保存
    • w:保存,不退出
    • wq/x:保存退出
  • 替换操作
    • :s/old/new/:光标所在行的第一个old替换为new
    • :s/old/new/g:光标所在行的所有old替换为new
    • :m, ns/old/new/g:将第m行至第n行之间的old全部替换成new
    • :%s/old/new/g:当前文件的所有old替换为new
    • :1,$s/old/new/g:当前文件的所有old替换为new
    • :%s/old/new/gc:同上,但是每次替换需要用户确认
  • 快速翻屏
    • ctrl + u:向下翻半屏(up)--光标向上移动
    • ctrl + d:向上翻半屏(down)--光标向下移动
    • ctrl + f:向上翻一屏(front)
    • ctrl + b:向后翻一屏(back)
  • 末行模式下执行shell命令:!shell
  • 分屏操作
    • sp:当前文件水平分屏;vsp:当前文件垂直分屏;
    • sp 文件名:当前文件和另一个文件水平分屏;vsp 文件名:竖直分屏
    • new创建新文件并打开
    • ctrl-w-w:在多个窗口切换光标
    • wall/wqall/xall/qall/qall!:保存/保存退出/保存退出/退出/强制退出分屏窗口
    • 在文件打开前分屏:
      • vim -on file1 file2 …,n可以省略, 有几个文件就分几屏
      • 垂直分屏: vim -On file1 file2…

五、配置文件

用户配置文件:~/.vimrc:修改用户级别的配置文件只会影响当前用户, 不会影响其他的用户

系统配置文件:/etc/vim/vimrc:修改了系统级别的配置文件将影响系统下的所有用户,建议只在用户级别的配置文件下进行修改

1、创建或进入配置文件

  1. 进入家目录~
cd
  1. 新建文件夹.vim,可能文件已经存在,.开头的是隐藏文件,ls命令想看到得加-a
mkdir .vim
  1. 进入.vim,用vim新建或进入vim配置文件vimrc
cd .vim
vim vimrc

2、配置文件配置

进入配置文件,一行行写配置就好。记住:小o命令快速在下面插入一行,大O在上面插入一行

  1. 改键位noremap 新键 旧键map 新键 旧键
    • map R :source $MYVIMRC<CR>表示输入命令,表示回车,之后在vimrc文件内,保存后每次按shift+r`就可应用配置。
    • map s <nop>:将s设置为没有功能,防止误删
    • map S :w<CR>大S设置为保存,以后写完之后,Esc回到命令模式,再shift+s就能保存。
    • ``map Q :q大Q`设置为退出
  2. 语法高亮syntax on
  3. 行号set number普通行号,set relativenumber设置相对行号,相对行号特别实用,方便用命令快速跳转。
  4. 在当前光标所在行显示一条线set cursorline,有些配色方案下这条线会很好看。
  5. 字不会超出当前显示范围set wrap
  6. 显示命令set showcmd
  7. 选项补全菜单set wildmenu,末行模式输入命令按tab补全时会提供菜单供选择,Tab在选项间切换
  8. 搜索时忽略大小写set ignorecase,智能大小写:set smartcase
  9. 文件打开是执行命令:exec “命令”,开始时不显示上一次搜索时的高亮:exec “nohlsearch”

3、美化vim

末行模式下直接改系统配色:colorTab选配色方案,回到默认用color default,系统配色可能有点丑,还是用插件比较好