vim命令行模式 vim切换命令模式

前言

学习linux少不了和vim打交道,今天我们就来了解一下什么是vim,如何高效使用vim以及如何配置vim。

vi和vim都是linux下多模式的编辑器,两者关系类似于c/c++的关系,vim是vi的升级版,不仅兼容vi的所有指令,还增加了一些新的特性,比如语法高亮,支持正则表达式等,vim具有程序编辑能力,常用于编写代码。下面让我们具体了解vim

vim命令行模式 vim切换命令模式

vim的模式

vim有多种模式,这里介绍一些常用的模式给大家,分别是命令模式(也叫普通模式Normal mode)、插入模式(Insert mode)、底行模式(last line mode)、可视化模式(Visual mode)、替换模式(Replace mode)。

用得最多的就是命令模式、插入模式和底行模式。文章后面也会教大家在vim上查看其他模式,linux下一般默认是安装了vim,没有下载vim执行下面指令即可

[king@VM-12-11-centos code]$ sudo yum intsall -y vim

vim后直接跟文件就会打开对应的文件,如果文件不存在就会自动创建

[king@VM-12-11-centos code]$ vim tmp.c

打开后就是这个界面,这里我的vim是配置过的,和原生的vim不同,文章后面会介绍vim的具体配置。

vim命令行模式 vim切换命令模式

vim模式间的切换

vim打开后默认在Normal命令模式下,也可以称为中间模式,因为模式间的切换都需要回到命令模式下再切换到对应的模式 在任何模式下只需要Esc键即可回到命令模式,如何从命令模式切换到指定模式我们我们接下来介绍

vim命令行模式 vim切换命令模式

命令模式

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段等

光标操作

早期的键盘是没有上下左右键的

vim命令行模式 vim切换命令模式

所以用h(左)、j(下)、k(上)、l(右)

  • shift+^ :光标定位到当前行的行首,shift+$光标定位到当前行行尾
  • gg :定位到起始行
  • shift+g :定位到结束行
  • n+shift+g :n表示指定的行数,跳转到指定行
  • b/w :以单词为单位光标前/后移动
  • #l :光标在该行向后移动#个间距
  • ctrl + b :屏幕往“后”移动一页
  • ctrl +f :屏幕往“前”移动一页
  • ctrl +u :屏幕往“后”移动半页
  • ctrl+d :屏幕往“前”移动半页

文本操作

  • yy :复制当前行
  • nyy :以当前行开始,复制n行
  • p:粘贴
  • np :一次重复粘贴n行
  • u:撤销
  • ctrl+r :恢复刚才的撤销,也就是撤销刚才的撤销
  • dd :删除光标所在行(ps:这里删除还可以当做剪切使用,比如dd删除当前行后,按p可以粘贴到指定位置)
  • ndd :删除n行
  • shift+~ :单词大小写切换
  • x :删除光标所覆盖的字符
  • xn :删除光标后的n个字符
  • shift+x :删除光标前的一个字符
  • n+shift+x :删除光标前n个字符
  • r+字符 :用指定字符替换光标所在字符
  • n+r+字符 :用指定字符替换光标后的n个字符

替换模式

  • shift+r :从命令模式切换为替换模式,在键盘上不断输入就会不断替换当前光标所在字符

插入模式

插入模式就是用来编辑文件内容的模式

从命令模式下进入插入模式:

  • i/I :在光标前面/行首插入
  • a/A :在光标后面/行尾插入
  • o/O :在光标下/上行行首插入

还有一些其他的方式这里就不介绍了,我们一般用i从命令模式进入插入模式然后编辑代码

底行模式

  • :(Shift+冒号) :从命令模式进入底行模式
  • w :保存
  • q :退出
  • ! :强制执行
  • wq! :强制保存并退出
  • set nu :显示行号
  • set nonu :去掉行号

这里本来是有信号的,我们set nonu后就不显示行号了

vim命令行模式 vim切换命令模式

vim命令行模式 vim切换命令模式

vs :在窗口下打开对应文件

vim命令行模式 vim切换命令模式

这样就把code.c也显示出来了

ctrl+ww :光标在文件间切换,同时光标在哪个文件,操作的就是哪个文件,wq退出的也是对应的文件

vim命令行模式 vim切换命令模式

help vim-modes查看vim的各种模式

开头的就是命令模式、可视化模式和选择模式的介绍,回车键或是上下左右键翻看文件内容,[冒号+q]即可退出

vim命令行模式 vim切换命令模式

  • 「/关键字」: 先按「/」键,再输入想寻找的字符,如果第一次找的关键字不是你想要的,可以一直按「n」,直到往后寻找到你要的关键字为止。
  • 「 ?关键字」:先按「?」键,再输入你想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」,会往前寻找到您要的关键字为止。

两者的区别是:[/关键字]是从文件底部开始找,而「?关键字」是从文件顶部开始的

可视化模式

v或shift+v或ctrl+v :都可从命令模式进入可视化模式

批量化注释和去注释

在可视化模式下:用hjkl键选择需要注释掉的区域(黄颜色的就是选中的区域)

vim命令行模式 vim切换命令模式

然后按shift+i,再输入//此时就注释掉了上图第5行,然后Esc退出,被选中区域就全部注释掉了。

去掉注释:同样在可视化模式下,hjkl选择去注释区域,输入d直接去掉注释

使用hjkl键选择要复制的内容,按y键复制,移动光标,在要粘贴的地方按p粘贴,会直接在光标所在位置处向后粘贴

批量化缩进

同样在可视化模式下通过hjkl选中要缩进的区域,然后按shift+i然后Tab键缩进单行,然后Esc退出,这样被选中区域就都缩进了

vim的配置

默认得vim不太好用,需要我们自己配置,普通用户配置vim只能影响当前的普通用户,其他用户不受影响。同时建议以普通用户的身份配置,不要使用root用户配置。

在普通用户下创建一个名为.vimrc的文件,然后打开

[test@VM-12-11-centos ~]$ touch .vimrc [test@VM-12-11-centos ~]$ vim .vimrc

  • 设置语法高亮:syntax on
  • 显示信号 :set nu

还有一些其他的我就不介绍了,进入命令模式,[:wq]保存退出

vim命令行模式 vim切换命令模式

这样vim就可以显示信号和语法高亮了

vim命令行模式 vim切换命令模式

这里给大家推荐一个已经配置好的vim插件VimForCpp,现成的轮子不用白不用,将下面方框中的指令复制到linux上执行即可,不过只支持centos7

vim命令行模式 vim切换命令模式

输入root密码后就可以下载了

vim命令行模式 vim切换命令模式

下载完成后输入指令vim就配置好了

[test@VM-12-11-centos ~]$ source ~/.bashrc

vim命令行模式 vim切换命令模式

配置好后,vim界面就是这样了

vim命令行模式 vim切换命令模式

vim快捷键图片

vim命令行模式 vim切换命令模式

文章介绍了vim的一部分功能,vim的功能远不止这么多,后期我会慢慢的更新内容。上面的这些常用指令熟练使用后,我们不仅可以脱离鼠标,还会大大提高写代码的效率。

本文【vim命令行模式 vim切换命令模式】由作者: C/S结构 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4552.html

(0)
上一篇 2023-03-15 08:49:18
下一篇 2023-03-15 08:54:32

相关推荐

  • ftp教程ubuntu ubuntu开启ftp

    FTP(文件传输协议)是一种标准网络协议,用于在远程网络之间传输文件。 有许多可用于 Linux 的开源 FTP 服务器。最流行和使用最广泛的是PureFTPd 、ProFTPD 和vsftpd 。在本教程中,我们将安装 vsftpd(非常安全的 Ftp 守护程序)。它是一个稳定、安全、快速的 FTP 服务器。我们还将向您展示如何配置 vsftpd 以将用户…

    2023-03-16
    200
  • linux电子书 epub(epub什么意思)

    EPUB 文件是使用开放格式发布内容的好方法。 电子书提供了一种随时随地阅读书籍、杂志和其他内容的好方法。读者可以在长途飞行和乘坐火车时享受电子书打发时间。最流行的电子书文件格式是 EPUB 文件,它是“电子出版物electronic publication”的缩写。 EPUB 文件受到各种电子阅读器的支持,并且是当今电子书出版的有效标准。 因为 EPUB …

    2023-03-17
    300
  • c语言int类型占几个字节(int到底占几个字节)

    什么是指针 C语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址。CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位。这里,数据对象是指存储在内存中的一个指定数据类型的数值或字符串,它们都有一个自己的地址,而指针便是保存这个地址的变量。也就是说:指针是一种保存变量地址的变量。前面已经提到内存其实就是一组有…

    2023-03-15
    200
  • linux命令行与shell编程 Linux命令行与shell脚本

    初识脚本编程 到目前为止我们已经知道了 Linux 系统和命令行的基础知识,是时候开始编程了。本章讨论编写 shell 脚本的基础知识。在开始编写自己的 shell 脚本大作前,你必须了解这些基本概念。 使用多个命令 到目前为止,你已经了解了如何使用 shell 的命令行界面提示符来输入命令和查看命令的结果。shell 脚本的关键在于输入多个命令并处理每个命…

    2023-03-20
    000
  • mysql更改密码后提示过期

    Your password has expired. To log in you must change it using a client that supports expired passwords 该问题提示很明显,说密码已过期。 按照网上的说法,操作了一遍。步骤如下: 1、在my.cnf 的 部分加入 skip-grant-tables 参数。 s…

    2023-03-08
    700
  • php文件用什么软件打开

    做技术的应该都知道,大部分文本类文件都可以用记事本打开,比如js文件、php文件、log文件、py文件、json文件、xml文件等等。但是你需要先“鼠标右键”,然后找到“打开方式”,才能找到“用记事本打开”,下面教大家直接把它给添加到右键中: 新建一个txt文件,复制下方的代码到其中,然后保存关闭。 Windows Registry Editor Versi…

    2023-03-14
    300
  • 堆排序算法的基本思想

    堆排序定义 一般来说,算法就像数学公式,前人经过不断优化和验证得到有规律性的公式留给后人使用,当然也会交给后人验证的思路。那么堆排序算法就是这样,它有基本固定的定义如下: 1、将数组构建为一颗有规则的完全二叉树 2、该二叉树任意父结点值必须大于(最大堆)或小于(最小堆)孩子结点 3、该二叉树除了最底层外,其它层都是从左往右充满地 4、该二叉树任意父结点左孩子…

    2023-03-11
    600
  • dhcp服务器设置自动还是开好,台式电脑DHCP服务怎么开启

    很多朋友在架设局域网时,经常使用到路由器这种设备,而这种设备内有一个叫做“DHCP”的路由功能,一般情况下它都是默认开启的,但很多朋友不知道DHCP功能是开启好,还是不开启好,本期文章就说说开启与不开启的区别。 DCHP协议概述 DHCP协议指的就是动态主机配置协议,是局域网内的网络协议,家庭网络环境下,指的就是路由器配置的网络。如果把路由器看作一台网络服务…

    2023-03-20
    100
  • 高等应用数学问题的matlab求解题

    实例 程序 clc; clear all; close all; %计算二元函数的极值点 并进行判断 syms x y %定义二元变量 x y z = (6*x-x^2)*(4*y-y^2);%定义二元变量函数 f1 = simplify(diff(z,x));%求z对x的一阶偏导 f2 = simplify(diff(z,y));%求z对y的一阶偏导 %求…

    2023-03-19
    000
  • 播放器代码错误是什么意思

    今天小米电视/小米盒子播放视频提示错误码600,1000怎么办?盒子不能播放了,提示错误代码600.1000这是什么情况?所有视频都无法进行播放,提示播放出错!错误码(600,1000)。经过一轮折腾,楼主分享3个解决方法。 播放出错!小米电视/小米盒子错误码600,1000原因分析 首先分析下小米电视/盒子播放出错!错误码(600,1000)的原因,这个是…

    2023-03-17
    100

发表回复

登录后才能评论
返回顶部
错说博客上线啦!