Vim命令使用笔记

以下是本人学习vim记到的一点点知识点,好记性不如烂笔头嘛~

打开文件
进入之后在普通模式下
输入 x:删除首行第一个字符
输入 dd:删除一行,实际上是剪切一行
输入 ddp:就这么简单,即实现了快速交换光标所在行与它下面的行
输入 .:重复执行上一步操作
输入 10x:删除10个连续字符
输入 3dd:删除三行文本
在普通模式下,你还可以使用 dw 或者 daw(delete a word)删除一个单词,所以你可以很容易的联想到 dnw (n替换为相应数字) 表示删除n个单词。
你在完成依次跳转后,可以使用 Ctrl+o 快速回到上一次(跳转前)光标所在位置
命令 说明
行间跳转

游标移动到第 n 行(如果默认没有显示行号,请先进入命令模式,输入 :set nu以显示行号) nG(n Shift+g)
游标移动到到第一行 gg
游标移动到最后一行 G(Shift+g)

复制及粘贴文本

  • 普通模式中使用y复制
    ○ 普通模式中,yy复制游标所在的整行(3yy表示复制3行)
    ○ 普通模式中,y^ 复制至行首,或y0。不含光标所在处字符。
    ○ 普通模式中,y$ 复制至行尾。含光标所在处字符。
    ○ 普通模式中,yw 复制一个单词。
    ○ 普通模式中,y2w 复制两个单词。
    ○ 普通模式中,yG 复制至文本末。
    ○ 普通模式中,y1G 复制至文本开头。
    ○ 普通模式中使用 p 粘贴
    ○ 普通模式中,p (小写)代表粘贴至光标后(下)
    ○ 普通模式中,P (大写)代表粘贴至光标前(上)

替换和撤销(Undo)命令
替换和Undo命令都是针对普通模式下的操作
替换 撤销

普通模式
普通模式下输入 15G,跳转到15行
普通模式下输入 >> 整行将向右缩进(使用,用于格式化代码超爽)
普通模式下输入 << 整行向左回退
普通模式下输入 : 进入命令行模式下对shiftwidth值进行设置可以控制缩进和回退的字符数,:set shiftwidth=10

命令行模式
命令行模式下输入 :ce (center)命令使本行内容居中 :ce
命令行模式下输入 :ri (right)命令使本行文本靠右 :ri
命令行模式下输入 :le (left)命令使本行内容靠左 :le

快速查找
普通模式下输入 / 然后键入需要查找的字符串 按回车后就会进行查找。 ?/ 功能相同,只不过 ? 是向上而 / 是向下查找。 进入查找之后,输入 nN 可以继续查找。 n 是查找下一个内容, N 查找上一个内容。

打开两个文件 $ vim 1.txt 2.txt
默认进入 1.txt 文件的编辑界面

  • 命令行模式下输入 :n 编辑 2.txt 文件,可以加 !:n! 强制切换,之前一个文件的输入没有保存,仅仅切换到另一个文件

  • 命令行模式下输入 :N 编辑 1.txt 文件,可以加 !:N! 强制切换,之前文件内的输入没有保存,仅仅是切换到另一个文件

  • 命令行模式下输入 :sp 1.txt 打开新的水平分屏视窗来编辑 1.txt

  • 命令行模式下输入 :vsp 2.txt 打开新的垂直分屏视窗来编辑 2.txt

  • 普通模式下 Ctrl+w s 将当前窗口分割成两个水平的窗口

  • 普通模式下 Ctrl+w v 将当前窗口分割成两个垂直的窗口

  • 普通模式下 Ctrl+w q 即 :q 结束分割出来的视窗。如果在新视窗中有输入需要使用强制符!即:q!

  • 普通模式下 Ctrl+w o 打开一个视窗并且隐藏之前的所有视窗

  • 普通模式下 Ctrl+w j 移至下面视窗

  • 普通模式下 Ctrl+w k 移至上面视窗

  • 普通模式下 Ctrl+w h 移至左边视窗

  • 普通模式下 Ctrl+w l 移至右边视窗

  • 普通模式下 Ctrl+w J 将当前视窗移至下面

  • 普通模式下 Ctrl+w K 将当前视窗移至上面

  • 普通模式下 Ctrl+w H 将当前视窗移至左边

  • 普通模式下 Ctrl+w L 将当前视窗移至右边

  • 普通模式下 Ctrl+w - 减小视窗的高度

  • 普通模式下 Ctrl+w + 增加视窗的高度

创建加密的文档 $ vim -x file1

在命令行模式中输入 ! 可以执行外部的 shell 命令

  • :!ls 用于显示当前目录的内容
    :!rm FILENAME 用于删除名为 FILENAME 的文件
    :w FILENAME 可将当前 VIM 中正在编辑的文件另存为 FILENAME 文件

Vim的功能设定:
获取目前的设定

  • 命令行模式下输入:set或者 :se 显示所有修改过的配置
  • 命令行模式下输入:set all 显示所有的设定值
  • 命令行模式下输入:set option? 显示 option 的设定值
  • 命令行模式下输入:set nooption 取消当前设定值
    set功能的说明
  • 命令行模式下输入 :set autoindent(ai) 设置自动缩进
  • 命令行模式下输入 :set autowrite(aw) 设置自动存档,默认未打开
  • 命令行模式下输入 :set background=darklight ,设置背景风格
  • 命令行模式下输入 :set backup(bk) 设置自动备份,默认未打开
  • 命令行模式下输入 : set cindent(cin) 设置C语言风格缩进