一段奇妙的vim编辑器之旅

一、背景

  对于Linux服务器上的操作,我们往往少不了使用vim,而有时候我对vim的使用并没有那么的熟练和深入,这周就深入的学习了vim的使用,包括入门和进阶,先分享给你们,也方便自己以后复习查询。

二、vim入门

  1.启动vim,使用命令:vim fileName

    如果该文件存在,则打开并显示内容;如果文件不存在,则在第一次保存的时候创建新文件。

  2.vim的三种模式

    命令模式:可以移动光标、删除、复制、搜索。

    插入模式:通过输入"a"、"i"、"o"中任意一个字符,可以进入该模式来进行修改文件内容。

    扩展模式:通过输入":"字符进入该模式,可以进行退出、保存、查找替换等操作。(如果在插入模式可以按ESC键返回命令模式再进行该操作)。

  3.命令模式下移动光标

    使用"h"、"j"、"k"、"l"来进行向左、向下、向上、向右移动,或者使用方向键。

    "w"移动到下一个单词,"b"移动到上一个单词。

  4.命令模式下的删除、修改、复制操作。

  即:

    行:cc(修改)、dd(删除)、yy(复制)

    字符:cl(修改)、dl(删除)、yl(复制)

    单词:cw(修改)、dw(删除)、yw(复制)

  5.撤销操作

    "u",撤销最近一次的修改 undo

    "U",撤销所有修改

    "ctrl+r",取消最后一次的撤销,redo

  6.查找操作(扩展模式或命令模式下)

    "/keyword",向后搜索

    "?keyword",向前搜索

    "n",查找下一个

    "N",查找上一个

  7.粘贴

    "p或P":粘贴已复制、已修改或已删除的数据。(命令模式下被修改以及删除的数据会默认复制到剪切板)

    对于行数据,"P"粘贴到上一行,"p"粘贴到下一行。

    对于字符数据,"P"粘贴到字符左侧,"p"粘贴到字符右侧

  8.命令模式下的一些技巧

    "dtc",删除从光标到字符c之间的所有字符

    "rc",将光标下的字符替换成c字符

    "dw",删除光标所在的单词的从光标处到结尾的所有字符

    "ndd",删除光标开始往下n行数据,比如5dd。

    "nyy",复制从光标开始往下n行数据,比如3yy.

    "nx",删除从光标开始的n个字符,比如4x.

    "R",进入替换状态,按ESC键退出。

  9.退出、保存、进入扩展模式

     命令模式和插入模式按ESC键并输入":"进入扩展模式

     ":w",保存

     ":q",退出

     ":wq",保存并退出

     ":w!",强制保存

     ":q!",强制退出

     ":wq!",强制保存退出

三、vim编辑器使用进阶

  1.文件内定位(命令模式下)         "G",跳转到文件最后一行         "1G",跳转到文件的第一行         "ctrl+d",往下滚动半屏         "ctrl+u",往上滚动半屏

  2.屏幕定位相关(命令模式下)         "H",跳转到本屏显示的第一行         "M",跳转到本屏显示的中间一行         "L",跳转到本屏显示的最后一行         "z"+"Enter",使当前的行成为屏幕显示的第一行         "z"+"-",使当前行成为屏幕的最后一行

  3.查找并批量替换(扩展模式下)         通过sed来查找 ,":s/keyword/replaceWord/g"             将当前行的所有keyword都替换成replaceWord,如果不加"/g"则只替换第一个keywords           默认对当前行进行查找            n1,n2,对文件的n1到n2行进行查找,如:1,10 s/a/123/g 将第一到第十行中的a替换成123            1,$,对整个文件查找

  4.读取和保存(扩展模式下)         ":r fileName" 将另一个file的内容读入到当前文件         "1,20 w file" 将当前编辑文件的1-20行的内容写入到一个新的file中         "1,$ w file"将整个文件写入一个新的file         "1,20 w >> file" 将当前编辑文件的1-20行内容追加到file中

  5.设置(扩展模式下)         1.":set",显示常用的配置选项         2.":set all",显示所有的配置选项         3.":set number",设置行号

四、总结

  通过本文的学习,我们对vim编辑器有了入门以及进阶的了解,当我们掌握了这些技巧以后,在linux下使用vim进行操作文本变得不再是难事,很爽有木有~,为了梦想,我一直在路上,你呢?

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python学习路

三、文件的操作、函数、类和对象

一、文件 文件的打开与关闭 在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件 open(文件名,访问模式) 示例如下: f ...

38960
来自专栏magicsoar

初识nginx——配置解析篇

一、nginx的介绍     nginx是由俄罗斯人开发的一款高性能的http和反向代理服务器,也可以用来作为邮件代理。相比较于其他的服务器,具有占用内存少,稳...

31780
来自专栏风中追风

分布式进阶__如何用zookeeper 实现分布式锁

        分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。

417160
来自专栏xingoo, 一个梦想做发明家的程序员

[logstash-input-redis]插件使用详解

Redis插件参数配置详解 最小化配置 input { redis { data_type => "list" #logstash redis插件工作方式 ...

33880
来自专栏抠抠空间

Django之auth模块(用户认证)

auth模块简介 auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从user表里查询有没有用户名和密码符合的对象, 而有了a...

50450
来自专栏python3

python 文件操作2

Somehow, it seems the love I knew was always the most destructive kind

15010
来自专栏挖坑填坑

ABP框架学习之—— 设置管理

abp这个设置管理时基于服务器缓存实现,使用得时string类型得键值对(建值都是string类型)。通过设置器(SettingProvider)注入,在站点启...

13230
来自专栏耕耘实录

Linux中find命令的使用详解(中)

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

10930
来自专栏章鱼的慢慢技术路

Linux编程_Shell脚本练习题

23120
来自专栏逍遥剑客的游戏开发

Tiled源码分析(四): 插件机制

24570

扫码关注云+社区

领取腾讯云代金券