vim学习笔记

前言

这是一篇学习笔记,用于知识备忘。

一、vim介绍

1.vim是Linux下的一个文本编辑工具,即用于在控制台中编辑文本。通过命名vim xxx即可进入该文本的vim操作界面,也可以用比如:vim test.c的命令来新建一个test.c文件。

2.在vim界面中,有两种操作模式:查看模式和插入模式。通过vim命令进入该文件后,默认是查看模式。在查看模式下按io等命令进入插入模式,在编插入模式下按Esc键退出到查看模式。一定要注意当前所在的模式,插入模式下用查看模式中的命令是无效的。

二、查看模式下的常用按键及指令

1.光标移动

  • gg 移动光标到文件开头
  • G 移动光标到文件结尾
  • n(数字)+Enter键 使光标向下移动n行,例如:3+Enter键即向下移动3行
  • n(数字)+gg 将光标移动到第n行
  • $ 将光标移动到行尾
  • 0 将光标移动到行头

2.选择

  • v 按字符选择
  • V 按行选择
  • Ctrl+v 按块区选择

3.常规操作

  • x 剪切
  • y 复制
  • p 粘贴
  • dd 删除光标所在的一行
  • d 用于删除被选中的部分

4.撤销

  • u 撤销上一个操作

5.指令

  • :set nu 显示行号
  • :w 保存
  • :q 退出
  • :wq 保存并退出

6.进入插入模式

  • i 在光标的下一位置进入插入模式
  • o 在光标的下一行新增空白行,并让光标停在新增空白行与上一行的Tab对齐位置

7.对齐

  • == 将选中行tab对齐

8.查找与替换

  • /字符串 向下查找。直接敲 / 字符,在其后面加你想查找的内容,可以输入正则表达式查找
  • ?字符串 向上查找
  • :s/old/new 将第一个old替换为new
  • :s/old/new/g 将一行中所有的old替换为new
  • :n1, n2s/word1/word2/g 将行n1与n2之间的word1替换为word2
  • :%s/old/new/g 将文件所有的old替换为new
  • :%s/old/new/gc 替换前要求确认

9.多行注释

1)多行注释:

  1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;
  2. 在行首使用上下键选择需要注释的多行;
  3. 按下键盘(大写)“I”键,进入插入模式;
  4. 然后输入注释符(“//”、“#”等);
  5. 最后按下“Esc”键。 注:在按下esc键后,会稍等一会才会出现注释,不要着急~~时间很短的

2)删除多行注释:

  1. 首先按esc进入命令行模式下,按下Ctrl + v, 进入列模式;
  2. 选定要取消注释的多行;
  3. 按下“x”或者“d”. 注意:如果是“//”注释,那需要执行两次该操作,如果是“#”注释,一次即可

三、配置vim

vim ~/.vimrc 进入当前用户 HOME 目录下的vim配置文件,即相对于当前用户的vim配置。当不存在这样一个文件时,vim会自动创建。

若是 vim /etc/vimrc 则是修改所有用户的vim配置。

在其中输入你想要设置的配置,如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

syntax on " 自动语法高亮

"colorscheme torte " 主题颜色

set number " 显示行号
set cursorline " 高亮当前行
hi CursorLine term=bold cterm=bold ctermbg=237

set showmatch " 显示括号匹配

setlocal noswapfile " 不要生成swap文件

set hlsearch " 搜索时高亮显示被找到的文本

set noerrorbells " 关闭错误信息响铃

set ruler " 打开状态栏标尺
set cmdheight=1 " 设定命令行的行数为 1
set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏)
set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\Ln\ %l,\ Col\ %c/%L%) " 设置在状态行显示的信息

"set paste " 粘贴时不自动换行,与 set autoindent 冲突

set autoindent " 换行自动缩进,与 set paste 冲突
set shiftwidth=4 " 自动缩进时的宽度
set smartindent " 智能自动缩进

set tabstop=4 " tabstop的宽度
set expandtab " tab换成空格
set softtabstop=4 " 按下tab键后的空格数
set listchars=tab:>-,trail:- " 显示空格和tab键

注解" 是注释标识符,其后面都是被注释的。

以上是笔者自己的简单配置,若要花里胡哨一点的,可以百度vim配置文件,一堆,直接复制到自己的这个配置文件中即可。