1.最好的vim详细使用收藏版

本文详尽介绍了Vim编辑器的使用,包括.vimrc配置、文本替换、Vim介绍与使用、查找与替换、编辑特殊文件等。通过学习,读者能够掌握Vim的基本操作和高级功能,提升编辑效率。
摘要由CSDN通过智能技术生成

vim使用详细,这只是开始不是结束

1.vim配置(.vimrc配置)

  • 让vi命令也可以使用vim的配置,需要修改 vi /etc/bashrc 增加如下一行内容
alias vi=vim
  • 在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本.所以,一般情况下把.vimrc文件创建在当前用户的根目录下比较方便,打开终端(或 terminal,或管理员命令行),输入 以下命令
    vim ~/.vimrc
    vim高亮配置
    ​​​​效果展示图:
    在这里插入图片描述

2. 在VIM中进行文本替换

2.1. 替换当前行中的内容: : s/from/to/ (s即substitude)

命令 描述
: s/from/to/ 将当前行中的第一个from,替换成to。如果当前行含有多个from,则只会替换其中的第一个。
: s/from/to/g 将当前行中的所有from都替换成to。
: s/from/to/gc 将当前行中的所有from都替换成to,但是每一次替换之前都会询问请求用户确认此操作。

注意:这里的from和to都可以是任何字符串,其中from还可以是正则表达式。

2.2 替换某一行的内容: :33s/from/to/g

命令 描述
:.s/from/to/g 在当前行进行替换操作。
:33s/from/to/g 在第33行进行替换操作。
:$s/from/to/g 在最后一行进行替换操作。

2.3. 替换某些行的内容: :10,20s/from/to/g

命令 描述
:10,20s/from/to/g 对第10行到第20行的内容进行替换。
:1,$s/from/to/g 对第一行到最后一行的内容进行替换(即全部文本)。
:1,.s/from/to/g 对第一行到当前行的内容进行替换。
:.,$s/from/to/g 对当前行到最后一行的内容进行替换。
:'a,'bs/from/to/g 对标记a和b之间的行(含a和b所在的行)进行替换。其中a和b是之前用m命令所做的标记。

2.4. 替换所有行的内容: :%s/from/to/g

命令 描述
:%s/from/to/g 对所有行的内容进行替换。

2.5. 替换命令的完整形式: :[range]s/from/to/[flags]

  • s/from/to/ 把from指定的字符串替换成to指定的字符串,from可以是正则表达式。

2.5.1 [range]表示法

  • 有以下一些表示方法:
命令 描述
不写range 默认为光标所在的行。
. 光标所在的行。
1 第一行。
$ 最后一行。
33 第33行。
'a 标记a所在的行(之前要使用ma做过标记)。
.+1 当前光标所在行的下面一行。
$-1 倒数第二行。(这里说明我们可以对某一行加减某个数值来取得相对的行)。
22,33 第22~33行。
1,$ 第1行 到 最后一行。
1,. 第1行 到 当前行。
.,$ 当前行 到 最后一行。
'a,'b 标记a所在的行 到标记b所在的行。
% 所有行(与 1,$ 等价)。
?chapter? 从当前位置向上搜索,找到的第一个chapter所在的行。( 其中chapter可以是任何字符串或者正则表达式。
/chapter/ 从当前位置向下搜索,找到的第一个chapter所在的行。( 其中chapter可以是任何字符串或者正则表达式。

注意,上面的所有用于range的表示方法都可以通过 +、- 操作来设置相对偏移量。

2.5.3 [flags]表示法

  • 可用的flags有:
命令 描述
只对指定范围内的第一个匹配项进行替换。
g 对指定范围内的所有匹配项进行替换。
c 在替换前请求用户确认。
e 忽略执行过程中的错误。

注意:上面的所有flags都可以组合起来使用,比如 gc 表示对指定范围内的所有匹配项进行替换,并且在每一次替换之前都会请用户确认。

3. Vim介绍与使用

vim是我最喜欢的编辑器,也是linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。而且对于非图形界面vim编辑非常的高效;

3.1 运行vimtutor

  • 打开终端输入:vimtutor
    这将有vim的详细使用手册;对于新手而言,非常适合学习;(如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimtutor zh)
    shift +zz,退出vim

3.2 Vim的几种模式

命令 描述
正常模式 可以使用快捷键命令,或按:输入命令行。
插入模式 可以输入文本,在正常模式下,按i、a、o等都可以进入插入模式。
可视模式 正常模式下按v可以进入可视模式, 在可视模式下,移动光标可以选择文本。按V进入可视行模式, 总是整行整行的选中。ctrl+v进入可视块模式。
替换模式 正常模式下,按R进入。

注意任何模式下按ESc都可以进入正常模式;

3.3. 启动Vim

命令 描述
vim -c cmd file 在打开文件前,先执行指定的命令;
vim -r file 恢复上次异常退出的文件;
vim -R file 以只读的方式打开文件,但可以强制保存;
vim -M file 以只读的方式打开文件,不可以强制保存;
vim -y num file 将编辑窗口的大小设为num行;
vim + file 从文件的末尾开始;
vim +num file 从第num行开始;
vim +/string file 打开file,并将光标停留在第一个找到的string上。
vim --remote file: 用已有的vim进程打开指定的文件。 如果你不想启用多个vim会话,这个很有用。但要注意, 如果你用vim,会寻找名叫VIM的服务器;如果你已经有一个gvim在运行了, 你可以用gvim --remote file在已有的gvim中打开文件。

3.4 文档操作

命令 描述
:e file 关闭当前编辑的文件,并开启新的文件。 如果对当前文件的修改未保存,vi会警告。
:e! file 放弃对当前文件的修改,编辑新的文件。
:e+file 开始新的文件,并从文件尾开始编辑。
:e+n file 开始新的文件,并从第n行开始编辑。
:enew 编译一个未命名的新文档。(CTRL-W n)
:e 重新加载当前文档。
:e! 重新加载当前文档,并丢弃已做的改动。
:e#或ctrl+^ 回到刚才编辑的文件,很实用。
:f或ctrl+g 显示文档名,是否修改,和光标位置。
:f filename 改变编辑的文件名,这时再保存相当于另存为。
gf 打开以光标所在字符串为文件名的文件。
:w 保存修改。
:n1,n2w filename 选择性保存从某n1行到另n2行的内容。
:wq 保存并退出。
ZZ 保存并退出。
:x 保存并退出。
:q[uit] 退出当前窗口。(CTRL-W q或CTRL-W CTRL-Q)
:saveas newfilename 另存为
  • :browse e 会打开一个文件浏览器让你选择要编辑的文件。 如果是终端中,则会打开netrw的文件浏览窗口; 如果是gvim,则会打开一个图形界面的浏览窗口。 实际上:browse后可以跟任何编辑文档的命令,如sp等。 用browse打开的起始目录可以由browsedir来设置:
命令 描述
:set browsedir=last 用上次访问过的目录(默认);
:set browsedir=buffer 用当前文件所在目录;
:set browsedir=current 用当前工作目录;
:Sex 水平分割一个窗口,浏览文件系统;
:Vex 垂直分割一个窗口,浏览文件系统;

3.5 光标的移动

3.5.1 基本移动

  • 以下移动都是在normal模式下:
命令 描述
h或退格 左移一个字符;
l或空格 右移一个字符;
j 下移一行;
k 上移一行;
gj 移动到一段内的下一行;
gk 移动到一段内的上一行;
+或Enter 把光标移至下一行第一个非空白字符。
- 把光标移至上一行第一个非空白字符。
w 前移一个单词,光标停在下一个单词开头;
W 移动下一个单词开头,但忽略一些标点;
e 前移一个单词,光标停在下一个单词末尾;
E 移动到下一个单词末尾,如果词尾有标点,则移动到标点;
b 后移一个单词,光标停在上一个单词开头;
B 移动到上一个单词开头,忽略一些标点;
ge 后移一个单词,光标停在上一个单词末尾;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值