往期内容

Linux常用指令合集

Linux文本编辑器

Linux软件包管理

Linux用户管理

Linux权限管理

文章目录

    • Vim常用操作
      • 什么是Vim
      • Vim工作模式
      • 插入命令
      • 定位命令
      • 删除命令
      • 复制和剪切命令
      • 替换和取消命令
      • 搜索和搜索替换命令
      • 保存和退出命令
    • Vim使用技巧
  • 笔记领取

Vim常用操作

什么是Vim

Vim是一个全屏幕文本编辑器,是Linux/UNIX最常用的文本编辑器,它的作用是建立、编辑、显示文本文件。

Vim没有菜单,只有命令。

Vim工作模式

如上图,vi+文件名进入文件,默认为命令模式。

[root@iZ2ze0xeiu8g6ub59nsq0bZ test]# vi ceshi

在命令模式下,所输入的字母都被当成命令,所以如果输入的字母并不是正确的命令,则需要继续输入。

若要进入插入模式,则需要输入命令i、a或o。

在命令模式下,若误删内容,可按u撤销删除。

在命令模式下按 可进入编辑模式,然后再输入想要执行的命令即可。

编辑模式的命令执行完后会自动恢复到命令模式。

下面再来详细介绍一下Vim的常用命令(命令模式下输入)

插入命令

a 在光标所在字符后插入
A 在光标所在行尾插入
i 在光标所在字符前插入
I 在光标所在行行首插入
o 在光标下插入新行
O 在光标上插入新行

定位命令

:set nu      设置行号
:set nonu   取消行号
gg          到第一行
G           到最后一行
nG          到第n行
:n          到第n行
$           移至行尾
0           移至行首

删除命令

x        删除光标所在处字符
nx      删除光标所在处后n个字符
dd      删除光标所在行,ndd删除n行
dG      删除光标所在行到文件末尾内容
D       删除光标所在处到行尾内容
:n1,n2d 删除指定范围的行

这里说一下最后一个命令

例如我要删除7-10行内容,可进行如下图操作

复制和剪切命令

yy       复制当前行
nyy     复制当前行以下n行
dd      剪切当前行
ndd     剪切当前行以下n行
p、P     粘贴在当前光标所在行下或行上

替换和取消命令

r        取代光标所在处字符
R       从光标所在处开始替换字符,按Esc结束
u       撤销上一步操作
Ctrl+r 取消撤销

搜索和搜索替换命令

/string          搜索指定字符串搜索时忽略大小写:set ic

如下图,若要在文件中搜索关于ftp的内容,则输入/ftp再回车即可,按n切换到下一个含有该关键词的字符串。

搜出来的字符串是区分大小写的,若不区分大小写,则输入命令:set ic

全文替换指定字符串

:%s/原来字符串/替换后字符串/g

例如我要把文件中的ftp替换成study,操作如下图所示:

在一定范围内替换指定字符串

:n1,n2s/原来字符串/替换后字符串/g

例如我要把文件中40-50行的study替换成ftp,操作如下图所示:

保存和退出命令

:w       保存修改
:w name 另存为指定文件
:wq     保存修改并退出
ZZ      快捷键,保存修改并退出
:q!     不保存修改退出
:wq!    保存修改并退出(文件所有者及root可用)

这里说一下最后一个命令的作用

先查看一下,etc文件夹下services的权限

[root@iZ2ze0xeiu8g6ub59 /]# ll /etc/services
-rw-r--r--. 1 root root 670293 Jun  7  2013 /etc/services

可以发现,文件所有者是有写权限的,现在我们把写权限去掉

[root@iZ2ze0xeiu8g6ub59 /]# chmod 444 /etc/services
[root@iZ2ze0xeiu8g6ub59 /]# ll /etc/services
-r--r--r--. 1 root root 670293 Jun  7  2013 /etc/services

现在所有者没有写权限,那么如果要保存修改后的文件services,则需要输入:wq!强行保存修改。

Vim使用技巧

:r   将某个文件导入到当前文件的光标所在位置

:!命令     可以在不退出Vim的情况下执行相应的系统命令

例如我在不退出Vim的情况下想知道命令mv的路径,则输入:!which ls即可,如下图。

上面两个命令的结合

如果我要将文件编辑结束时的时间导入到到文件中,则可以输入

:r !date

:map 快捷键 触发命令    #定义快捷键

来说说这个map如何使用,例如现在我要把光标所在行注释掉

一般来说可分为以下几步:

  1. 光标移到该行行首并进入插入模式,使用命令I
  2. 添加#注释
  3. Esc退出插入模式

如果要注释的行比较多,则会变得非常繁琐,下面我们输入命令,将Ctrl+P定义为以上几步的快捷键

现在只要在光标所在行输入Ctrl+p就能将该行注释

但如果我们定义的快捷键很多,记不住时,我们还可以用到替换,命令格式如下

:ab phone 12345678910    #在当前编辑文件下,我输入phone再回车就能变成电话号码

其实上面定义的快捷键或者是ab替换,都没有被系统保存下来,也就是说当我重新登录后就会失效。

那么我们需要将这些快捷键输入到每个用户的home目录下的配置文件里。

以root用户为例,创建一个配置文件.vimrc

[root@iZ2ze0xeiu8g6ub59 /]# vi /root/.vimrc

然后在配置文件中输入我们使用Vim时的一些常用命令和快捷键,保存即可。

笔记领取

Linux系列文章均已打包成PDF版本的笔记,关注公众号“大拨鼠Code”回复“Linux”领取,持续更新。

【Linux】文本编辑器Vim相关推荐

  1. Linux文本编辑器-vim

    Linux文本编辑器-vim Vim简介 Vim是从vi发展出来的一个文本编辑器.其代码补完.编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.和Emacs并列成为类Unix系统用户最喜欢 ...

  2. Linux文本编辑器——vim

    Linux文本编辑器   ed  pico  emacs  nano  gVim  vim  vi   vim 是文本编辑器  不是文字处理工具(office  liboffice  wps)  你的 ...

  3. Linux文本编辑器---vim详解

    零.前言 本篇主要介绍Linux下文本编辑器vim的使用方法,以及sudo命令的实现. 1.什么是vim 在windows系统下,我们使用VS来编写代码,编译代码,调试代码,运行代码等,甚至还可以进行 ...

  4. 10.18.1 linux文本编辑器vim

    vi和vim的区别 编辑一个文本时,vi不会显示颜色,而vim会显示颜色,vi 有点类似windows记事本,简单,那么就是vim复杂编辑器,功能复杂,高亮,自动缩进(写shell/python脚本用 ...

  5. Linux文本编辑器——vim编译器的全面讲解

    前言 这是我听老师讲课做的笔记,考试要看的. 这是视频地址 作者:RodmaChen 关注我的csdn博客,更多Linux笔记知识还在更新 vim编译器 一 概述 二 vim 编译器常用的操作命令 2 ...

  6. linux文本编辑器vim的基本使用

    文本编辑器用来创建或修改文本文件的. 三种工作模式:命令模式-->>编辑模式--->>命令行模式.模式切换:进入文件 --命令模式出现insert --编辑模式输入: --命令 ...

  7. Linux文本编辑器vim

    简介 vi: Visual Interface,文本编辑器 文本编码:ASCII, Unicode 文本编辑种类: 行编辑器: sed 全屏编辑器:nano, vi VIM - Vi IMproved ...

  8. Linux文本编辑器Vim操作命令汇总!

    vim编辑器无疑是每个开发者都必须掌握的,通常在Linux的服务器操作文件内容都是需要使用到它的. 但是在使用时能够记住的vim命令又是少之又少,如果是专业运维人员的话可能就比较熟悉,但是我们开发人员 ...

  9. 【Linux】 - linux文本编辑器vim的常用操作

    文章目录 启动和退出 命令模式和插入模式 保存操作 光标移动命令 文本编辑操作 插入一行 删除文本 复制和粘贴 查找和替换 行内搜索 搜索整个文件 全局搜索和替换 启动和退出 [启动]:输入vim命令 ...

最新文章

  1. nginx1.9基于端口的四层负载均衡实践,基于端口的转的负载均衡
  2. websocket demo
  3. matplotlib 折线图_漂亮图表也可信手拈来,一文学会用Python绘制堆积折线图
  4. 前端翻译:Activating Browser Modes with Doctype
  5. Id vs Instancetype
  6. UVA 10886 Standard Deviation
  7. 忽略证书_中专考生注意!忽略这一点,四科全过也拿不到执业药师证书!
  8. html调用python_HTML网页调用本地Python程序
  9. 数据清洗Chap5——数据转换
  10. ar9285网卡驱动 for linux,atheros ar9285无线网卡驱动 免费版
  11. windows 编译libtorrent
  12. love2d环境搭配
  13. c语言中eof的作用,C语言中EOF是什么意思?
  14. 硬盘分区工具找不到硬盘该怎么办
  15. 基于Pandas的股票数据分析
  16. Python模拟手机充值案例程序实现代码
  17. 优秀课程案例:使用Scratch图形化编程工具做一个见缝插针游戏!
  18. 企业成长能力分析的指标是什么
  19. 帮朋友 解决一道 LeetCode QJ上问题
  20. 【SoC FPGA学习】五、基于虚拟地址映射的 Linux 硬件编程,在已有工程上实现按键与LED的联动

热门文章

  1. 中国各省人口,面积排名
  2. 1990-2021年全国各省城市化水平数据
  3. 百度webgis-api-显示中国地图02
  4. 自如用户画像平台建设实践与营销应用
  5. 小红书发布2022年美妆用户洞察报告,近八成用户选它
  6. 如何在并行安装中更改默认的SOLIDWORKS版本?| SOLIDWORKS教程
  7. 「游戏建模」如何展UV和设置光滑组?
  8. 区块链编程初学者指南
  9. C语言typedef结构体的理解
  10. RichErp生产Erp系统简介