【探索Linux】—— 强大的命令行工具 P.3(Linux开发工具 vim)
阅读导航
前言
前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C++的一些知识,也学习了一些Linux的基本操作,也相信大家都掌握的不错,今天博主带大家了解一下Linux开发工具—— vim ,下面话不多说坐稳扶好咱们要开车了!!!?
vim简介
概念
Vim(Vi IMproved)是一款在Unix和类Unix系统上广泛使用的文本编辑器。它是Vi编辑器的增强版,提供了更多的功能和改进的用户体验。Vim具有强大的编辑能力和高度可定制性,被广泛认为是一款程序员和系统管理员常用的编辑器之一。掌握Vim的基础概念和功能将使您在Linux系统上的文本编辑工作更加高效和便捷。通过实践和探索,您可以逐步熟悉和精通Vim的使用。
特点
-
Vi和Vim:Vi是Unix系统上一款文本编辑器,它是Vim的前身。Vim(Vi IMproved)是对Vi进行了改进和增强的编辑器。Vim保留了Vi的所有功能,并新增了很多新的特性和命令。
-
终端:在Linux中,Vim通常在终端中运行。终端是Linux上的命令行界面,它允许用户通过命令行输入来与计算机进行交互。
-
模式:Vim具有不同的编辑模式,主要有三种模式:
- 命令模式(Command mode):在启动Vim或按下Esc键后进入的默认模式。可以执行命令和移动光标。
- 插入模式(Insert mode):在命令模式下按下
i
、a
、o
等字符进入的模式。可以输入文本内容。 - 可视模式(Visual mode):在命令模式下按下
v
进入的模式。可以选择和操作文本。
-
命令和快捷键:在命令模式下,使用各种命令和快捷键可以执行不同的操作,例如保存文件、退出Vim、复制粘贴文本等。
-
配置:Vim有一个配置文件
.vimrc
,用于设置和定制Vim的行为。用户可以在配置文件中添加自定义的颜色方案、缩进设置、插件管理等。 -
插件和扩展:Vim支持插件系统,允许用户安装扩展功能。有很多社区维护的插件可供选择,可以增加各种功能,如代码补全、语法高亮等。
-
帮助文档:Vim附带了详细的内置帮助文档。通过命令模式下的
:help
命令可以打开帮助系统,查找和学习Vim的命令和功能。
vim的相关指令
vim命令模式(Normal mode)相关指令
⭕Vim的命令模式(Normal mode)是启动Vim或按下Esc键后进入的默认模式。在命令模式下,可以执行各种命令和移动光标,以下是一些常用的命令指令:
-
光标移动:
-
h
: 将光标向左移动一个字符。 -
j
: 将光标向下移动一行。 -
k
: 将光标向上移动一行。 -
l
: 将光标向右移动一个字符。 -
0
: 将光标移动到当前行的行首。 -
$
: 将光标移动到当前行的行尾。 -
gg
: 将光标移动到文件的第一行。 -
G
:将光标移动到文件的最后一行。 -
Ctrl+f
: 向下翻页。 -
Ctrl+b
: 向上翻页。
-
-
文本编辑:
-
i
: 进入插入模式,在当前位置插入文本。 -
a
: 进入插入模式,在当前位置的下一个字符插入文本。 -
o
: 在当前行的下方插入一个新行,并进入插入模式。 -
O
: 在当前行的上方插入一个新行,并进入插入模式。 -
x
: 删除光标所在位置的字符。 -
dd
: 删除当前行。 -
yy
: 复制当前行。 -
p
: 粘贴复制的内容。
-
-
撤销和重做:
-
u
: 撤销上一次操作。 -
Ctrl+r
: 重做上一次被撤销的操作。
-
-
查找和替换:
-
/keyword
: 在文件中向后查找关键字keyword
。 -
?keyword
: 在文件中向前查找关键字keyword
。 -
n
: 在当前方向继续查找下一个匹配项。 -
N
: 在当前方向继续查找上一个匹配项。 -
:s/old/new
: 在当前行将第一个出现的old
替换为new
。 -
:%s/old/new/g
: 在整个文件中将所有出现的old
替换为new
。
-
-
保存和退出:
-
:w
: 保存文件。 -
:q
: 退出Vim。 -
:wq
或:x
: 保存并退出Vim。 -
:q!
: 强制退出Vim,丢弃所有修改。
-
以上只是常用的命令模式指令的一部分,Vim命令模式提供了众多的命令和功能,几乎可以涵盖所有的文本编辑需求。通过练习和尝试,您将逐渐掌握更多的指令和技巧。您可以通过在命令模式下输入 :help
或查阅Vim的相关文档来获取更多信息。
插入模式(Insert mode)相关指令
⭕Vim的插入模式(Insert mode)是在命令模式下按下i
、a
、o
等字符进入的模式。在插入模式中,可以输入和编辑文本。以下是一些常用的插入模式指令:
-
插入文本:
-
i
: 在当前光标位置之前插入文本。 -
a
: 在当前光标位置之后插入文本。 -
o
: 在当前行的下方插入一个新行,并进入插入模式。 -
O
: 在当前行的上方插入一个新行,并进入插入模式。
-
-
光标移动:
-
Left Arrow
或Ctrl+h
: 将光标向左移动一个字符。 -
Right Arrow
或Ctrl+l
: 将光标向右移动一个字符。 -
Up Arrow
或Ctrl+k
: 将光标向上移动一行。 -
Down Arrow
或Ctrl+j
: 将光标向下移动一行。 -
Home
: 将光标移动到当前行的行首。 -
End
: 将光标移动到当前行的行尾。
-
-
删除和编辑:
-
Backspace
或Ctrl+h
: 删除光标前的一个字符。 -
Delete
或Ctrl+d
: 删除光标后的一个字符。 -
Ctrl+w
: 删除光标前的一个单词。 -
Ctrl+u
: 删除当前行的所有内容。 -
Ctrl+t
: 缩进当前行。 -
Ctrl+d
: 取消缩进当前行。 -
Ctrl+v
: 输入特殊字符。
-
-
退出插入模式:
-
Esc
: 退出插入模式,返回到命令模式。
-
在插入模式中,您可以自由地输入和编辑文本内容。一旦退出插入模式,就可以使用命令模式下的各种命令,如保存文件、撤销操作、搜索等。通过练习和使用,您将逐渐熟悉插入模式的操作方式,并能够高效地编辑和修改文本文件。
末行模式(last line mode)相关指令
⭕末行模式(Last Line mode)是在命令模式下以冒号开头的操作,用于执行一系列的操作和命令。在末行模式下,可以执行一些高级的编辑和操作,以下是一些常用的末行模式指令:
-
保存和退出:
-
:w
或:write
: 保存当前文件。 -
:w filename
或:write filename
: 以指定的文件名保存当前文件。 -
:q
或:quit
: 退出Vim。 -
:q!
或:quit!
: 强制退出Vim,丢弃所有修改。 -
:wq
或:x
或:xit
或:writequit
: 保存并退出Vim。
-
-
打开和编辑文件:
-
:e filename
或:edit filename
: 打开指定的文件。 -
:new
或:new filename
: 在新的分窗口中打开指定的文件。 -
:tabnew
或:tabnew filename
: 在新的标签页中打开指定的文件。 -
:split filename
: 将当前窗口分割,并在新窗口中打开指定的文件。 -
:vsplit filename
: 将当前窗口垂直分割,并在新窗口中打开指定的文件。
-
-
搜索和替换:
-
:/pattern
或:search pattern
: 在当前文件中向后搜索匹配的模式。 -
:?pattern
或:search? pattern
: 在当前文件中向前搜索匹配的模式。 -
:s/old/new
或:substitute/old/new
: 将当前行第一个出现的old
替换为new
。 -
:%s/old/new/g
或:%substitute/old/new/g
: 将整个文件中所有出现的old
替换为new
。
-
-
行号和跳转:
-
:n
或:n line_number
: 跳转到指定行号。 -
:n
或:n +offset
: 跳转到当前行号加偏移量的行。 -
:n
或:n -offset
: 跳转到当前行号减偏移量的行。 -
:rewind
或:rew
: 跳转到文件的第一行。 -
:last
或:la
或:$
: 跳转到文件的最后一行。 -
:first
或:fi
或:1
: 跳转到文件的第一行。
-
-
窗口管理:
-
:only
或:on
: 关闭除当前窗口之外的其他窗口。 -
:sp filename
或:split filename
: 将当前窗口水平分割,并在新窗口中打开指定的文件。 -
:vsp filename
或:vsplit filename
: 将当前窗口垂直分割,并在新窗口中打开指定的文件。 -
:close
或:clo
: 关闭当前窗口。 -
:wincmd h/j/k/l
或Ctrl+w h/j/k/l
: 使用方向键控制光标在窗口间移动。
-
以上是一些常见的末行模式指令,您可以在末行模式下执行各种命令和操作。通过练习和了解更多的指令,您可以更加高效地进行编辑和操作。
简单vim配置(附配置链接)
要配置好看的vim,原生的配置可能功能不全,可以选择安装插件来完善配置,保证用户是你要配置的用户,接下来博主推荐一个链接里面有详细的配置过程以及链接,直接按照上面的那样一步一步来相信好用的很。
配置链接:VimForCpp
推荐阅读:Vim从入门到牛逼(vim from zero to hero)
温馨提示
感谢您对博主文章的关注与支持!在阅读本篇文章的同时,我们想提醒您留下您宝贵的意见和反馈。如果您喜欢这篇文章,可以点赞、评论和分享给您的同学,这将对我提供巨大的鼓励和支持。另外,我计划在未来的更新中持续探讨与本文相关的内容。我会为您带来更多关于Linux以及C++编程技术问题的深入解析、应用案例和趣味玩法等。请继续关注博主的更新,不要错过任何精彩内容!
再次感谢您的支持和关注。我们期待与您建立更紧密的互动,共同探索Linux、C++、算法和编程的奥秘。祝您生活愉快,排便顺畅!