当前位置: 首页 > article >正文

【linux-Day7】Vim的使用和简单配置

【linux_Day7】Linux编辑器-Vim的使用和简单配置

  • Vim多模式
    • 进入vim
    • 多模式之间进行切换
    • (保存)退出vim
  • vim常用操作总结
    • 命令模式:快速编辑
      • 从命令模式进入插入模式的三种方法
      • 从命令模式进入底行模式
      • 移动光标
      • 复制、删除(剪切)、粘贴
      • 撤销
      • 替换
      • 从命令模式切换到替换模式进行覆盖写入
      • 翻页
      • 从命令模式切换到视图模式进行批量化代码补充/删除
      • 查询代码
    • 底行模式常用操作总结
  • 配置vim:修改配置文件
  • 配置vim:使用插件(基于Ubuntu系统)

在linux中,写代码可以用vim,编代码可以用gcc/g++,调代码可以用gdb,自动化构建项目可以用make/makefile。

我们在电脑上安装的vscode,idea等,这些都是集成开发环境,它们本质上就是由写代码工具,编代码工具,调代码工具等等构成的一个"壳子"。

本篇的主人公是vim。
vim以一款Linux自带的,多模式的编辑器软件。
它在系统中的默认路径如下:
在这里插入图片描述

我们可以在vim中写东西。
vim打开后不支持鼠标操作,所以关于vim的操作 ,全是在键盘上:
vim是基于下面这样的键盘被创造的,所以输入数字的时候最好 从键盘的如下位置输入。
vim操作区分大小写。
在这里插入图片描述

Vim多模式

vim是多模式编辑器,在不同模式下,用户执行不同的操作。通过组合不同的模式可以完成复杂的编辑任务。

本篇主要总结了命令模式、插入模式、末行模式的常用操作。

  1. 正常/普通/命令模式(Normal mode):
    控制屏幕光标的移动;字符、字或行的删除;移动复制某区段;进入Insert mode下或者到 last line mode。
  2. 插入模式(Insert mode):
    只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
  3. 末行模式(last line mode):
    文件保存或退出;也可以进行文件替换,找字符串,列出行号等操作。在底行模式下直接输入help vim-modes,可以查看到本机vim的所有模式。

进入vim

vim 文件1:用vim打开文件1。
注意:如果文件1不存在,用vim打开文件1,后面保存退出vim后,文件1会被自动创建。

vim 文件1 +n:用vim打开文件1,并且光标落在文件1的第n行。

多模式之间进行切换

vim的默认模式是命令模式,一进入vim默认就是命令模式。

在命令模式下,输入i或a或o,从命令模式切换到插入模式(i、a、o区别在后面)。

不能从插入模式直接退出vim,也不能从插入模式直接切换到其他模式下,

  • 如果想退出vim,

    1. 先摁Esc键从插入模式回退到命令模式,在命令模式下输入退出指令退出vim;
    2. 在命令模式下输入:进入底行模式,然后在底行模式输入退出命令退出vim。
  • 如果想从插入模式切换到其他模式,先摁Esc键回退到命令模式,然后从命令模式进入其他模式。
    同理,
    除命令模式的其他模式之间进行切换时,最好先Esc回退到命令模式,再从命令模式进入。
    摁Esc键,从当前模式回到命令模式。

在这里插入图片描述

(保存)退出vim

  1. 在命令模式下:shift+zz=ZZ:保存并退出
  2. 在底行模式下:
    输入w:保存
    输入q:退出(未修改内容)
    输入q!:退出(不保存强制退出)
    输入wq:保存并退出

vim常用操作总结

命令模式:快速编辑

在命令模式下,能控制屏幕光标的移动;字符、字或行的删除;移动复制某区段;进入Insert mode下或者到 last line mode。

从命令模式进入插入模式的三种方法

i:直接切换,光标位置不变
a:切换到插入模式后,光标后移一位
o:切换到插入模式后,光标下移一行,并新起一行

从命令模式进入底行模式

:(相当于shift+;):从命令模式进入底行模式

移动光标

gg:快速回到第一行
shift+g(相当于G):快速把光标定位到最后一行
n+G:定位到第n行
shift+4/$ (相当于$):光标定位到该行最后一个字符
shift+^/6 ( 相当于 ^):光标定位到该行第一个字符

h j k l也能左下上右移动光标(vim是在键盘上还没有上下左右键的时候诞生的)
上下左右键也能上下左右移动光标
在这里插入图片描述
上下左右移动光标的命令前面都可以带数字。表示上/下移n行,左/右移动n个字符。

w:以单词为单位向右移动
b:以单词为单位向左移动
w和b命令前面也能带数字。

复制、删除(剪切)、粘贴

对光标所在行yy:复制光标所在行
对光标所在行 n+yy:复制所在行以及后面的行,共n行
p:把复制的内容粘贴到光标下一行
n+p:把复制的内容粘贴n次
dd:先复制再删除光标所在行
n+dd:从光标所在行开始删除,共n行

yy+p是先复制再粘贴
dd+p是先剪切在粘贴
yy dd p都是以行为单位。

x:在行内,删除光标所在字符,该行字符串左移/前移
n+x:删除光标所在字符串以及后面的字符串,共n个。

X(相当于shift+x):在行内,删除光标所在字符的前一个字符,该行字符串左移/前移
n+X:删除光标所在字符串前面的n的字符。

撤销

u:撤销历史操作
ctrl+r:撤销u操作
一旦退出vim,就无法进行撤销了,但如果只是保存,没有通过q退出,可以撤销。

替换

r+A:把光标所在字符替换成A
n+r+A:把光标所在字符以及后面的(n-1)个字符都替换成A

从命令模式切换到替换模式进行覆盖写入

R(shift+r):从命令模式切换到替换模式REPLACE,按Esc键退出替换模式回到命令模式。

在这里插入图片描述在替换模式下可以进行覆盖写入:

shift+~:把光标所在字符大写变小写,或者小写变大写
长按shift+~:把光标所在字符大写变小写,或者小写变大写,直到当前行结束。

翻页

按「ctrl」+「b」:向前翻动一页
按「ctrl」+「f」:向后翻动一页
按「ctrl」+「u」:向前翻动半页
按「ctrl」+「d」:向后翻动半页
长按 ,持续翻页

从命令模式切换到视图模式进行批量化代码补充/删除

ctrl+v:从命令模式进入视图模式V-BLOCK,按Esc键退出替换模式回到命令模式。
在这里插入图片描述
在试图模式下,可以进行批量代码的补充或删除。
下面以注释/去注释代码为例:

  1. 在视图模式下,以光标所在位置为基点,通过移动光标选择行后,shift+i进入插入模式,输入//后,摁Esc,就完成了对选中区域的注释且回到命令模式。
    在这里插入图片描述

  2. 进入视图模式前将光标处于文件首行首字符,进入视图模式, shift+g,选中全部行,shift+i进入插入模式,输入//后摁Esc,就完成了对全文的注释且回到命令模式。
    其中,n+G成立。
    在这里插入图片描述

  3. 批量化去注释:
    在试图模式下,以光标所在位置为基点 ,移动光标 选中文件中的//,摁住d,就把选中的//删除了并且自动回到了命令模式。

查询代码

对代码进行增删改已经可以了,如何查询代码?

#(shift+3/#):查询到光标所在的单词,在全文中出现的所有位置。然后摁n,光标从下往上开始遍历。

底行模式常用操作总结

在命令模式下输入:,进入底行模式,可进行文件保存或退出;也可以进行文件替换,找字符串,列出行号等操作。

在底行模式下进行文件保存/退出不再赘述。

set nonu:取消行号
输入set nu或者set number命令:显示行号。
此时取消/显示行号都是临时的,退出vim就失效了。

!指令:在vim底行模式下输入!指令,可以在不退出vim的情况下执行linux指令。
例如:
!sl:
在这里插入图片描述

%s/zzz/xxx/:批量替换,用xxx替换文中所有zzz。

vs 文件1:在不退出当前vim的情况下,使用vim打开文件1—>vim的分屏操作。
在这里插入图片描述
在这里插入图片描述

vim分屏之间如何进行光标切换:摁住ctrl,摁两下w

在底行模式下也可以搜索:
/xxx:在全文搜索xxx,摁n从上向下遍历文中的xxx
在这里插入图片描述
在这里插入图片描述


vim常见操作总结完毕!

配置vim:修改配置文件

vim默认无配置时,就是一个普通的编辑器,没有首行缩进,语法高亮,显示行号等等。上面也提到过在底行模式下设置行号,但却只能临时设置。

通过配置vim可以让我们使用vim时得到更好的体验。配置vim–>修改配置文件的内容。

.vimrc是vim的配置文件。.vimrc在系统中有两个位置,分别是用户的家目录和系统目录/etc/下。

linux用户打开vim的时候,
系统会先去该用户的家目录中找.vimrc隐藏文件,如果存在,系统会先根据.vimrc对vim进行配置,然后再打开vim;
如果没找到,再继续去系统目录/etc/下找有没有.vimrc隐藏文件,如果存在,系统会先根据.vimrc对vim进行配置,然后再打开vim。
如果Linux系统目录/etc/下存在.vimrc隐藏文件,那么家目录下没有配置文件的用户,和root用户共用一份配置文件。
如果系统路径下也没找到配置文件,就打开无配置的vim。

如何配置当前用户的vim:
该用户的家目录中如果有.vimrc隐藏文件,打开配置文件修改配置项即可。
如果没有,先在该用户的家目录下创建.vimrc隐藏文件,然后再打开配置文件修改配置项即可。

配置文件中的行注释是 在行开头使用双引号"
在这里插入图片描述

常见的配置项:
这个是我从网上找的哈,自己也一直在用,直接复制粘贴到用户家目录下的.vimrc文件中保存,该用户的vim配置即可生效:

syntax on               " Set syntax highlighting
set number              " Set the line number
set tabstop=4           " Set an indent to account for 4 spaces
set autoindent          " Set up automatic indentation
set mouse=a             " Set mouse is always available, set mouse= (empty) cancel
set cc=80               " Column 80 highlighted, set cc=0 cancellation
set cursorline          " Settings to highlight the current row
set cindent             " Format C language
set st=4                " Set the width of the soft tab to 4 spaces
set shiftwidth=4        " The width automatically indented when setting a new line is 4 spaces
set sts=4               " Set the number of spaces inserted when the Tab key is pressed in insertion mode to 4
set ruler               " Show the status of the last line
set showmode            " The status of this row is displayed in the lower left corner.
set bg=dark             " Show different background tones
set hlsearch            " Enable Search Highlight
set laststatus=2        " Always display the status bar

syntax on :打开语法高亮,使 Vim 在编辑文件时能够根据文件类型高亮显示不同的语法元素,便于阅读和理解。
set number :显示行号,将每一行的行号显示在编辑区的左侧,方便定位代码行。
set tabstop=4 :设置 Tab 键的宽度为 4 个空格。这意味着当文档中出现制表符时,它将被视作 4 个空格宽。
set autoindent : 开启自动缩进功能,让新的行与前一行的缩进保持一致。
set mouse=a:设置鼠标模式,使鼠标始终可用。这使得用户可以在正常、可视和插入模式下通过鼠标进行选择、滚动等操作。如果设置为set mouse=则取消此功能。
set cc=80:在第 80 列高亮显示,用于指示代码的长度是否超过了规定的长度限制。这有助于遵循代码可读性的最佳实践。设置set cc=0可以取消此高亮。
set cursorline : 高亮显示当前光标所在的行,便于跟踪当前位置。
set cindent : 针对 C 语言代码启用自动缩进功能。这会影响大括号、关键字后的自动缩进行为。
set st=4 :设置软制表符(softtabstop)宽度为4个空格。这意味着当按下 Tab 键时,即使实际写入的是制表符,其效果也会表现为 4 个空格。
set shiftwidth=4 :设置自动缩进时的宽度为 4 个空格。使用命令 gg=G 时,自动缩进为 4 个空格。
set sts=4 :设置在插入模式下按下 Tab 键时插入的空格数为 4 个。这通常与tabstop和shiftwidth设置保持一致,以维持代码的一致性。
set ruler: 显示光标当前位置的行号和列号。
set showmode: 显示当前Vim的工作模式(如 Normal、Insert 等)在屏幕的左下角,帮助用户了解当前的操作环境。
set bg=dark : 设置编辑器的背景色为深色,以适应暗色主题。
set hlsearch: 启用搜索高亮功能,使得进行搜索时匹配的文本被高亮显示。
set laststatus=2 : 总是显示状态栏。确保状态栏在任何时候都可见,提供有关文件名、模式和编码等信息。

配置vim:使用插件(基于Ubuntu系统)

通过修改配置文件只能进行简单vim配置,要想vim有像VSCode中代码编辑器那样的效果,只能选择在系统上安装插件。

使用插件配置vim,有机会的话另出一篇吧~


http://www.kler.cn/a/378811.html

相关文章:

  • CentOS 7 安装 ntp,自动校准系统时间
  • 手动搭建 LNMP 环境(Ubuntu)
  • 常用的 Lambda 表达式案例解析
  • WPF使用Prism框架首页界面
  • 【Python】【数据可视化】【商务智能方法与应用】课程 作业一 飞桨AI Studio
  • 11.03学习
  • 前端技术月刊-2024.11
  • Google 地图类型
  • mysq-B+Treel(一)
  • 【HTML】——VSCode 基本使用入门和常见操作
  • zoho域名邮箱指南:如何设置优化烽火邮箱?
  • 学编程应该怎么写博客,有什么推荐的平台吗?
  • windows在两台机器上测试 MySQL 集群实现实时备份
  • 三十、Python基础语法(继承-下)
  • Shutdown Abort 强制关库,真的有可能起不来?
  • C++算法练习-day32——222.完全二叉树的节点个数
  • 宠物排泄物图像分割系统:高效目标识别
  • 开放式耳机什么品牌质量好?5款排行榜里的开放式蓝牙耳机
  • rnn/lstm 项目实战
  • 关于使用K8s实现容器化作业的总时效最优调度
  • 【设计模式】结构型模式(一):适配器模式、装饰器模式
  • 爬虫技术——小白入狱案例
  • “灵境·石景山杯”数字文旅创新大赛晋级名单
  • 路由策略与路由控制
  • CNN-Attention分类预测 | Matlab实现多特征分类预测
  • qt QBrush详解