Linux Vim最全面的教程——全网最详细

hackferances 2024-06-16 14:37:04 阅读 59

一. 安装

1. 在Debian/Ubuntu下使用命令行安装Vim

输入以下命令:

$ sudo apt-get update $ sudo apt-get install vim

2. 在基于RPM的Linux系统上安装Vim

输入以下命令:

$ su - $ yum install vim

3. 判断Vim是否安装

输入以下命令:

$ which vim

如果已经安装,应该会输出vim的安装位置:

/usr/bin/vim

二. 配置

Vim将其配置存储在.vimrc的文本文件中,它位于用户的主目录下

你可以通过修改.vimrc来修改配置,比如自动缩进等。

要修改vim配置,可以通过以下命令:

$ vim /home/user/.vimrc

请将其中的user改为你的用户名,或者也可以执行以下命令:

$ vim ~/.vimrc

这样就可以修改vim的配置了,你可以自行更改,可以参考我的配置:

" 设置tab为4个空格set ts=4set softtabstop=4set shiftwidth=4set expandtabset autoindent" 设置自动缩进set autoindent set cindentset shiftwidth=4set softtabstop=4set tabstop=4" 显示行号" set nu

其中的双引号" 是注释,我设置了一些常用模块便于写代码。

set用于设置参数,详细内容会在使用教程中说到。

三. 使用教程

A. Vim的基本教程

1. 打开Vim / 用Vim打开文件

从终端输入vim命令,如下所示:

$ vim

这将打开vim,如下:

要关闭它,请按 Esc 键,然后按冒号(:) 和 q。在 Vim 中,q 命令代表退出。此命令将显示在编辑器本身的左下角,如下所示:

要编辑一个文件test.c,可以通过以下命令:

vim test.c

如果有一些文件是只读的但你还是想修改,就要用root权限了:

sudo vim test.c

以只读方式打开:

vim -R test.c

使用view命令可以达到相同的效果:

$ view test.c

1. Vim中最常见的4个模式
1. 普通模式

(官方的说法是命令模式,但是容易和命令行模式搞混,所以通常被称为普通模式)

这是 Vim 启动的默认模式。我们可以在此模式下输入编辑器命令。我们可以在此模式下使用各种命令,例如复制、粘贴、删除、替换等等。我们将在后面讨论这些命令。

2. 插入模式

您可以使用此模式输入/编辑文本。

要从默认命令切换到插入模式,请按 i 键。它将在编辑器的左下角显示当前模式。

当我们进入了插入模式,我们就可以输入任何文本,如下图:

使用 Esc 键从此模式切换回命令模式。

3.命令行模式

此模式也用于输入命令。此模式下的命令以 colon(:) 开头。我们可以从命令或插入模式进入此模式。

要从普通模式切换到此模式,只需输入冒号

要从插入模式切换到此模式,请按 Escape 并键入冒号

要退出命令行模式,Esc或者删除冒号

从这里开始,任何以冒号开头的 Vim 命令都表示我们正在命令行模式下执行该命令。

命令行模式下的命令将在后面讲到。

4.可视化模式

在这种模式下,我们可以直观地选择文本并在选定的部分上运行命令。

若要从命令模式切换到可视化模式,请键入 v

要从任何其他模式切换到可视化模式,请先按 Escape 切换回命令模式,然后键入 v 切换到可视模式

要退出可视化模式,请按Escape

在下图中,左下角显示了可视化模式:

2. 文件处理的简单步骤:
1. 创建并编辑一个文件:

输入以下命令打开vim

$ vim

然后在vim中输入以下命令:

:edit test.txt

这将会打开test.txt,如果已经打开,此操作可以用作刷新。

切换到插入模式

i

输入一些文本,然后按下以下按键回到普通模式:

Esc

保存该文件:

:w

这将创建test.txt文件,里面是你刚才输入的一些文本。

退出vim

:q

2. 编辑现有文件:

执行以下步骤以编辑现有文件 -

使用 Vim 打开文件:

$ vim message.txt

切换到插入模式并在那里输入一些文本:

i

退出编辑器而不保存更改:

:q!

或者使用以下命令保存更改并退出编辑器 :

:wq

B. Vim命令及其作用大全

1. 文本的常用编辑

在执行这些操作前请确保你处于普通模式下。要进入普通模式,请按Esc键。

切换到插入模式,光标不动

要从普通模式切换到插入模式,而且光标呆在原来的位置,请输入该按键:

i

在行首插入文本

假设您位于行的中间,并且要在当前行的开头插入文本,只需输入该按键:

I

此操作会将光标移动到当前行的开头,并从普通模式切换到插入模式

在光标后面进入插入模式

要进入插入模式,同时光标向后移一位,按下该按键:

a

此操作将光标向右移动一个位置,并在插入模式下切换 Vim。

在行尾切换到插入模式

假设您位于行的中间,并且要在当前行的末尾附加文本,请输入以下按键:

A

​此操作会将光标移动到行尾,并切换到插入模式。

在光标下方打开新行

假设您处于行的中间,并且想在当前行下方打开新行,清请按下该按键:

o

此操作将在当前行下方插入空行,并将 Vim 切换到插入模式

在光标上方打开新行

假设您处于行的中间,并且想在当前行上方打开新行,请按下以下按键:

O

此操作将在当前行上方插入空行,并将 Vim 切换到插入模式

删除文本

假设您要删除单个字符,要将光标移到你想删除的字符的位置,然后输入以下命令:

s

此操作将删除光标下的字符,如果你想删除一整行,请输入以下命令:

S

或者也可以输入该命令:

cc

如果你想删除一行内光标之后的文本,就键入该按键:人

C

这几个个操作都将在删除的同时切换到插入模式。

替换文本

要替换单个字符,输入以下命令:

r

然后输入其他的字符就能替换掉这一个字符了。

如果你想替换一整行的文本,输入以下命令:

R

连接文本

如果你想连接两行,键入以下该按键:

J

2. 光标操纵

1. 基本操纵

控制光标上下左右移动,以下命令可以做到此目的:

h 光标向左移动一个位置
j 光标向下移动一行
k 光标向上移动一行
l 光标向右移动一个位置

如果你想连续移动多个位置,可以在命令前添加数字,表示连续走多少行。例如,要让光标向下走10行,请执行以下命令:

10j

您也可以将数字与其余命令一起使用。

除此之外,还有以下这种有用的命令:

0 将光标移动到当前行的开头
$ 将光标移动到当前行的末尾
Ctrl + f 组合键 向下滚动整个页面
Ctrl + b 组合键 向上滚动整个页面
2. 光标移到特定行

以下命令可用于导航到特定行:

:n 跳转到第n行
:0 跳转到文件的开头
:$ 跳转到文件的末尾
3. 单词操作

可以使用以下命令实现单词的各种操作:

w 将光标移动到下一个单词的开头
e 将光标移动到当前单词的末尾
b 将光标移动到上一个单词的开头
4. 跳转操作

Vim使用跳转列表来跟踪李之前的操作(光标操作)。跳转列表跟踪你之前光标去过的所有地方。

要查看跳转列表,输入以下命令:

:jumps

以下命令用于你跳转的撤回或重做:

Ctrl + o 组合键 跳回光标的上一个位置(光标位置的撤回)
Ctrl + i 组合键 跳转到光标的下一个位置(相当于光标的重做)

3. 更复杂的编辑

1. 缓冲区

缓冲区是 Vim 使用的临时内存。当我们在vim中打开一个文件时,vim会从内存加载其内容。这些内容存储在内存 (RAM) 中,每当我们编辑文件时,我们实际上是在从缓冲区编辑文件。一旦我们完成编辑并保存文件,只有缓冲区内容被传输到适当的文件。

2. 交换区

交换区是 Vim 创建的用于定期存储缓冲区内容的文件。在编辑文件时,我们的更改可能会因任何原因而丢失,Vim 提供了交换文件以提供数据恢复。

要获取交换文件的实际名称,请执行以下命令:

:swapname

3. 剪切,复制粘贴等操作

我们经常对文本执行剪切、复制和粘贴等操作。

Vim 提供了以下命令来执行这些操作(y 代表 yank复制,p 代表paste粘贴操作):

x 从光标位置删除字符
X 从光标位置删除位置的上一个字符
y 从光标位置复制单个字符
p 在光标位置后粘贴字符
P 在光标位置前粘贴字符
4. 多字符命令操作

我们也可以对单词和句子使用剪切、复制和粘贴命令。下表说明了这一点:

DW 从光标位置删除单词
D 从光标位置删除整行
DD 删除整行
Y 复制整行

如果你想执行多行/多单词操作,只需使用带有命令的数字即可。您也可以将此语法用于其他命令。比如,要删除 3 个单词,可以输入:

3dw

3. 撤消/重做操作

如果要撤销单个操作,输入以下命令:

u

若要执行多个撤消操作,就在操作前加数字。例如,要撤销3次,执行以下命令:

3u

除此之外,你还可以撤消所有的操作:

U

要对之前的撤销进行重做,可以执行以下命令:

Ctrl+R

或者也可以通过命令行重做:

:red

4. Vim之搜索/查找

1. 搜索的相关设置

要执行增量搜索,输入该命令:

:set incsearch

要突出显示搜索,输入该命令:

:set hlsearch

要禁用增量和突出显示的搜索,请执行以下命令:

:set noincsearch:set nohlsearch

你也可以把以上这些命令放到vim的配置文件中。

2. 在当前文件中搜索
1. 从前往后搜索

以下是从前往后搜索的相关命令:

/<表达式> 从前往后搜索表达式
n 找下一个搜索到的单词
N 找前一个搜索到的单词
// 重复往前查找
2. 从后往前查找

以下是从后往前搜索的相关命令:

?<表达式> 从后往前搜索
n 找前一个搜索到的单词
N 找下一个搜索到的单词
?? 重复往后查找
3. 用光标查找单词

将光标放在任意单词下并执行以下命令以执行单词搜索操作:

* 搜索当前单词的下一个匹配项
# 搜索当前单词的上一个匹配项
3. 在多个文件中搜索

使用vimgrep命令可以在多个文件中搜索一个词。比如该命令在所有文本文件中搜索Jarvis单词:

:vimgrep Jarvis *.txt

如果有多个单词存在,使用以下命令可以查询上一个或下一个单词:

:cn 查找下一个匹配项
:cN 查找前一个匹配项

四. Vim获取帮助

1. 访问帮助手册

帮助手册是 Vim 编辑器本身附带的,它非常全面。

要访问帮助,在普通模式下执行以下命令:

:help

2. 有关特定主题的帮助

帮助手册将显示有关 Vim 的全部帮助。如果我们只对某个主题感兴趣呢?Vim 也提供了命令,并提供了以下语法:

:help <主题名称>

在上面的命令中,将 <主题名称> 替换为您感兴趣的主题。例如,要访问有关 vim 模式的帮助,请执行以下命令:

:help modes

这将打开关于Vim下模式的教程:

3. 在手册中搜索帮助短语

只有知道特定主题的名称时,才能搜索特定主题。但是,如果您不知道帮助主题的确切名称怎么办。在这种情况下,您可以使用以下命令:

:helpgrep <phrase>

例如,要访问有关在 Vim 中导航的帮助,请执行以下命令

:helpgrep navigation



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。