【Linux】开发工具2:vim

其他篇章【Linux专栏】

其他篇章 【C语言专栏】

上期回顾

文章目录

  • [一.、编辑器 vim](#一.、编辑器 vim)
    • [1. 编辑器vim---常用的三种模式](#1. 编辑器vim---常用的三种模式)
      • [1.1 命令模式(command mode)](#1.1 命令模式(command mode))
      • [1.2 插入模式(Insert mode)](#1.2 插入模式(Insert mode))
      • [1.3 末行模式(last line mode)](#1.3 末行模式(last line mode))
    • 2.vim三种模式的切换
    • [3. vim的配置方法](#3. vim的配置方法)
      • [3.1 .vimrc 文件是用来配置普通用户的vim编辑器---(root用户默认有)](#3.1 .vimrc 文件是用来配置普通用户的vim编辑器---(root用户默认有))
      • [3.2 配置方法1](#3.2 配置方法1)
      • [3.3 配置方法2:安装插件](#3.3 配置方法2:安装插件)
      • 3.4设置缩进 (打开 .vimrc文件进行修改)
    • [4. vim常用模式的的基本操作](#4. vim常用模式的的基本操作)
      • [4.1 命令模式](#4.1 命令模式)
        • [1. 快速跳动光标](#1. 快速跳动光标)
        • [2. 移动光标](#2. 移动光标)
        • [3. 复制](#3. 复制)
        • [4. 粘贴](#4. 粘贴)
        • 注意!
        • [5. 删除](#5. 删除)
        • [6. 撤销/取消撤销](#6. 撤销/取消撤销)
        • [7. 替换](#7. 替换)
        • 8.更改
        • [9. 跳⾄指定的⾏](#9. 跳⾄指定的⾏)
        • [10. 批量(取消)注释](#10. 批量(取消)注释)
        • [11. 多文件](#11. 多文件)
      • [4.2 末行模式](#4.2 末行模式)
    • [5. 处理vim打开文件报错的问题](#5. 处理vim打开文件报错的问题)

一.、编辑器 vim

vim是Linux下常用的一款多模式的文本编辑器 (可以用他来写代码),每个Linux账户都独有一个vim编辑器

1. 编辑器vim---常用的三种模式

创建vim文件:vim 文件名 (如果该文件没有创建,得保存后才会创建出来)

1.1 命令模式(command mode)

进入vim编辑器,默认进入命令模式

  • 命令行模式下无法在打开的文件里插入任何数据,只能执行对应的指令

1.2 插入模式(Insert mode)

插入模式由命令模式切换 : 输入 "i"

  • INSERT是当前处于 插入模式 的提示符
  • 退出:按Esc键,退回到命令模式

1.3 末行模式(last line mode)

末行模式由命令模式切换:输入 "Shift + ;"

  • " :"→当前处于 末行模式 的提示符

  • 退出:按Esc键,退回到命令模式

2.vim三种模式的切换

补图

3. vim的配置方法

在没有任何配置的情况下,Linux默认的vim编辑器会缺少很多功能,比如自动缩进,自动补全等功能

3.1 .vimrc 文件是用来配置普通用户的vim编辑器---(root用户默认有)

3.2 配置方法1

向 .vimrc文件写入指定的内容,使vim编辑器具备指定的功能(自行查找哈)

3.3 配置方法2:安装插件

配置插件的链接

注意:

  • 1、不要在root用户下执行!!!
  • 2、适配版本: Centos7 x86_64
  • 3、一个用户一个vim配置文件,相互之间不会影响

执行:

1.输入命令: curl -sLf https://gitee.com/HGtz2222/VimForCpp/raw/master/install.sh -o ./install.sh && bash ./install.sh

2、手动输入"source ~/.bashrc" :使vim配置生效

验证生效:

c 复制代码
[root@VM-0-9-centos ~]# source ~/.bashrc		//第1步
[root@VM-0-9-centos ~]# vim						//第2步

第3步

第4步:进一步验证

c 复制代码
[root@VM-0-9-centos ~]# vim hello.cpp		//创建一个测试文件
[root@VM-0-9-centos ~]# g++ hello.cpp -o hello
[root@VM-0-9-centos ~]# ./hello
配置生效啦!

3.4设置缩进 (打开 .vimrc文件进行修改)

  • 设置空格缩进: set shiftwidth = n

4. vim常用模式的的基本操作

4.1 命令模式

1. 快速跳动光标
  • 按 $ :移动到光标所在⾏的"⾏尾"
  • 按 ^ :移动到光标所在⾏的"⾏⾸"
  • 按 w :光标跳到下个字的开头
  • 按 e :光标跳到下个字的字尾
  • 按 b :光标回到上个字的开头
  • 按 #l :光标移到该⾏的第#个位置,如:5l,56l
  • 按 gg :进⼊到⽂本开始
  • 按 shift+g :进⼊⽂本末端
  • 按G:移动到⽂章的最后
2. 移动光标

⬆️ ⬇️ ⬅️ ➡️(看自己的键盘哈)

早期没有上下左右键,所以是用字母代替的

  • k:即将光标向上移用一个字符
  • j:即将光标向下移动一个字符
  • h:即将光标向左移动一个字符
  • l:即将光标向右移动一个字符
3. 复制
  • yy:复制当前行
  • yw:复制光标所在处的的单词
  • nyy:复制光标所在行开始往下的n行
4. 粘贴
  • p:粘贴到光标所在行的下一行
注意!

(所有与"y"有关的复制命令都必须与"p"配合才能完成复制粘贴功能)

5. 删除
  • x:删除光标所在位置的一个字符
  • dd:删除光标所在行
  • dw:删除当前单词
  • ndd:从光标所在行开始删除n行
6. 撤销/取消撤销
  • u:撤销上一步
  • Ctrl + r:取消上一次的撤销操作(恢复)
7. 替换
  • r:替换光标所在处的字符
  • R:替换光标所在处的字符,知道按下Esc键停止
8.更改
  • cw :更改光标所在处的字到字尾处
  • c#w :例如,「c3w」表⽰更改3个字
9. 跳⾄指定的⾏
  • ctrl + g :列出光标所在⾏的⾏号。
  • #G :例如,15G ,表⽰移动光标⾄⽂章的第15⾏⾸。
10. 批量(取消)注释

批量注释:

  • 第一步:Ctrl + v
  • 第二步:h, j, k, l选择要被注释的区域
  • 第三步:shift + i
  • 第四步://
  • 第五步:Esc

批量取消注释:

  • 第一步:Ctrl + v
  • 第二步:h, j, k, l选择要被去注释的区域
  • 第三步:d
11. 多文件
  • 第一步:vs filename(不退出vim情况下打开更多文件)底行模式中打开更多的文件
  • 第二步:ctrl+ww 窗口光标切换 (光标在哪一个窗口,就在哪一个窗口进行操作)

4.2 末行模式

1. 保存与退出
  • nq(!):(强制)退出
  • w(!):(强制)保存
  • wq(!):(强制)保存并推出
2、不退出vim的情况下执行xshell命令
  • ! 命令
3、新建一个窗口(或打开另一个文件)
  • vs filename
4、搜索关键字
  • /关键字 : 先按 / 键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以⼀直按 n 会往后寻找到您要的关键字为⽌。
  • ?关键字 :先按 ? 键,再输⼊您想寻找的字符,如果第⼀次找的关键字不是您想要的,可以⼀直按 n 会往前寻找到您要的关键字为⽌。
  • 问题:∕ 和 ?查找有和区别?操作实验⼀下
5. 保存⽂件
  • w : 在冒号输⼊字⺟ w 就可以将⽂件保存起来
6. 离开vim
  • q :按「q」就是退出,如果⽆法离开vim,可以在「q」后跟⼀个「!」强制离开vim。
  • q! : 强制离开vim
  • wq :⼀般建议离开时,搭配「w」⼀起使⽤,这样在退出的时候还可以保存⽂件。

5. 处理vim打开文件报错的问题

当我们在使用vim编辑器处理文件时,发生错误导致退出了当前的编辑(关闭云服务器或虚拟机),再次使用vim打开相同文件就会发生报错!

解决办法:

  • 1、选择(Recover)选项,即输入 'e' ,会进入vim编辑器,直接进入到末行模式正常退出即可
  • 2、继续使用vim打开该文件,此时同样会弹出相同的报错提示,这次输入'd', 之后就会进入vim编辑器,可以正常编写了
相关推荐
SWAGGY..2 小时前
【C++初阶】:(10)vector的使用及模拟实现
开发语言·c++
所愿ღ2 小时前
SSM框架-Spring2
java·开发语言·笔记·spring
坚持就完事了2 小时前
再谈编辑器Vim
linux·编辑器·vim
故事还在继续吗2 小时前
C++11关键特性
开发语言·c++·算法
格林威2 小时前
面阵相机 vs 线阵相机:堡盟与Basler选型差异全解析 +C++ 实战演示
开发语言·c++·人工智能·数码相机·计算机视觉·视觉检测·工业相机
zzzsde2 小时前
【Linux】线程概念与控制(2)线程控制与核心概念
linux·运维·服务器·开发语言·算法
白夜11172 小时前
C++(不适合使用 CRTP情况)
开发语言·c++·笔记
zhangyueping83852 小时前
大模型学习笔记-调用模型和基础使用
笔记·学习
宁静致远20212 小时前
ARM 架构 Ubuntu 20.04 / 22.04 触摸屏设备
linux·c++·ubuntu