Linux Vim 编辑器的使用笔记

it2023-06-21  64

1、vim简介

vi编辑器是由加州大学伯克利分校、 bill joy研发的。它是 Linux下最基本的文本编辑器,而且也是一款文本模式编辑器。vim是vi的增强型,被推崇为类vi编辑器中最好的编辑器。vim命令的操作方法与vi一模一样,只是在vi基础上对内容显示上进行了颜色的衬托,对相关指令以变色,以区别其它文字,更加人性化了。通常我们称vi与vim,都为vi。nvim更更好用。 它有三种模式:命令、行底、编辑模式,三种模式之间的切换如下图所示:

2、进入退出方式

"进入vi的方式" vi vi newfile #打开或新建文件 vi newfile + #打开文件之后光标处于文件最末行 vi newfile +n #打开文件之后光标处于文件第n行 "保存文件的方式" :w [filepath] #保存当前编辑的文件,若filepath有指定则表示另存为文件 :w! [filepath] #强制保存文件,若文件存在则覆盖 "退出vi的方式" 命令模式下:连续按两次大写Z键,保存并退出 行末模式下: :q #退出vi,前提是该文件没有被编辑过 :q! #强制退出vi,放弃修改 :wq #保存并退出vi :wq! #强制保存并退出vi

3、命令模式下

1.光标可移动的单位:

(1)字符: 汉字由二个ASCII字符宽度,移动的单位是一个汉字,英文或数字等是一个ASCII字符宽度(2)行: 文本的一行,可用行号定位(3)屏幕: 分成半个屏幕高或整个屏幕高(页)(4)行首和行尾:文本行的行尾和行首(5)字: 广义字和狭义字 广义字:由空格作为间隔符 狭义字:英文单词、标点符号及一些特殊字符均作为一个字(6)句: 以逗号、句号、问号、感叹号结尾且后面有二个以上(含二个)空格或一个换行符的字符序列。(7)段: 以一个空白行开始和结束的字符序列 "光标移动" ##按字符移动## 四个方向键 k j h l :各自按上下左右移动一个字符 space backspace ctrl+n ctrl+p :各自向右左下上移动一个字符 ##按行移动## 0 :本行行首 ^ :第一个非空白字符 $ :本行行尾 - :上一行行首 <n>G :跳到第n行行首,缺省则为最末行 ##按字移动## w :安照单词的首字母向后移动,不忽略标点符号 W :安装单词的首字母向后移动,忽略标点符号 b :按照单词的首字母向前移动,不忽略标点符号 B :按照单词的首字母向前移动,忽略标点符号 e :按照单词末尾字母向后移动,不忽略标点符号 E :按照单词末尾字母向后移动,忽略标点符号 按句、段落移动: ( :将光标移到当前句句首,如果已处在句首,则移到前一句句首 ) :将光标移到下一个句子的开头 { :将光标移到当前段段首,如果已处在段首,则移到前一段段首 } :将光标移动到下一段段首 "翻页" Ctrl + f 向后翻一页 Ctrl + b 向前翻一页 Ctrl + d 向后翻半页 Ctrl + u 向前翻半页 Ctrl + e 屏幕向下翻一行 Ctrl + y 屏幕项上翻一行 "剪切/删除" x : 删除光标处的字符 nx : 删除光标位置起的右n个字符 X : 删除光标前的字符 nX : 删除光标位置前的左n个字符 dd : 删除当前行 ndd : 删除从当前行算起随后的n行 D(d$): 删除光标起到行尾的内容 d0 : 删除光标前一个字符到行首的内容 dw : 删除一个单词 ndw : 删除n个单词 "文本的修改" c object : 改变光标位置起到object位置的内容. C(c$) : 改变光标位置起到行尾的内容. nC : 改变光标位置起的n行内容 cc : 改变当前行的内容.等价于dd和O的组合 ncc : 改变当前行起n行的内容 r(R) : 替换光标所在的字符,替换后依然为命令模式 s(S) : 替换光标所在的字符,替换后切换为插入模式 "复制/粘贴" ##字复制命令## yb 复制光标前的一个字 yw 复制光标后的一个字 ##行复制命令## <n>yy 复制光标下面的N行 y$ 复制光标后面所有的字符 y0 复制光标前面所有的字符 ##粘贴命令## p 把已经复制的字或者行粘贴到光标之后 "撤销" u 恢复最后一个指令之前的结果。 U 恢复光标该行之所有改变 "命令模式常用操作:" dd :删除光标所在的行; 3dd :删除从当前光标开始起的3行内容; 4dd :就是删除从当前光标开始起的4行内容; yy :剪切当前光标行; 3yy :剪切从当前光标行开始起的3行。(包括当前光标行); p :paste粘贴; u :undo撤销; $ :直接定位到当前行的行末;

4、行底模式下

"命令->行底" : 命令 / 查找(自顶向下)往光标之后寻找该字符串 ? 查找(自底向下)往光标之前寻找该字符串 "复制/粘贴" :1,5 co 20 #将1到5行拷贝到20行下。 "撤销" :undo #恢复上一个指令之前的结果 "搜索与替换" / 查找(自顶向下)往光标之后寻找该字符串 ? 查找(自底向下)往光标之前寻找该字符串 n 搜到相应字符后,往下继续寻找下一个相同的字符串 N 搜到相应字符后,往上继续寻找下一个相同的字符串 s 搜索某行范围,search g 搜索改行所有匹配的字符 ##例子## 替换10到20行之间,匹配到的字符: : 10,20s/old/new 替换10到20行的第一个匹配到的字符 : 10,20s/old/new/g 替换10到20行所有匹配到的字符 替换文本中所有匹配到的字符: : %s/old/new 替换所有行第一个匹配到的字符 : %s/old/new/g 替换所有行所有匹配到的字符 注:替换时没有指定到的行中出现了需要匹配的字符串时,该字符串会高亮显示。 注:有些字符不能直接替换,需要加上转义符‘\’。 "设定vi环境" :set autoindent 设置自动对齐 :set smartindent 设置智能对齐 :set tabstop=n 设置制表符tab的空格数 :set shiftwidth=n 设置换行时对齐的空格数 :set showmatch 设置智能匹配,左括号与右 括号匹配 :set vb t_vb= 去取命令错误时的响声 :set nu 显示行号 number :set nonu 取消显示行号 nonumber :set background=dark 设置背景颜色为暗色 :set background=light 设置背景颜色为亮色 :syntax [on | off ] 语法打开/关闭高亮 :set hls 高亮关键字 :set nohls 取消高亮关键字 "vi启动时自动加载设定" vi启动时自动加载环境配置: vi在启动时会自动加载当前用户目录下.vimrc文件,可以在该文件中设定启动的环境配置。 方法:在用户根目录下打开.vimrc : vi ~/.vimrc 将之前所述的环境设定加入到该配置文件中的最末尾处,保存并退出。

5、编辑模式下

"命令->编辑" ##追加模式## append a 由光标之后加入资料。 A 由该行之末加入资料。 ##插入模式## insert i 由光标之前加入资料。 I 由该行之首加入资料。 ##新增行模式## open o 新增一行于该行之下供输入。 O 新增一行于该行之上供输入。

6、常用命令

"下面这几个命令要好好记住,用得很多!!!" 移动到开始、结束和结尾。 gg:移动到文件顶端开始 G:移动到文件底端开始 M:移动到文件中间位置 "命令模式" ggVG 全选 dd 删除 “+y 复制 #英文状态下的双引号 p 粘贴 zz 退出(大写) 2,7 co 10 将第二行到第七行拷贝到第十行下面 a :在光标之后,插入内容; A :在光标的行末,插入内容; i :在光标之前,插入内容; I :在光标的行首,插入内容; o :在光标的下一行,插入内容; O :在光标的上一行,插入内容; "行底模式" :wq 表示“保存退出”; :wq! 表示“保存并强制退出”; :q! 表示“强制退出”; :set nu 显示行号; :set nonu 不显示行号; :num num为10就表示跳转到第10行(一般显示行号后再用这个); :/单词 寻找单词,多个单词时用n向后寻找,N向前寻找,默认会高亮显示; :noh 取消高亮显示;

vi提供同时编辑多个文件的功能,方法如下:

"打开多个文件" vi file1 [file2] [file3] ..... "在多个文件之间的编辑切换" ##在末行模式下## :n 载入下一个文件 :N 载入上一个文件 当完成一个文件的编辑后,需要保存该文件,才可切换 ##两个文件之间的编辑切换## 命令模式下: ctrl+shift+6 末行模式下: :e#
最新回复(0)