Linux(9)-Vim编辑器的使用

Vim编辑器的使用

  • 1.指令模式常用快捷键
    • 1.1 定位快捷键
    • 1.2 编辑快捷键
    • 1.3查找相关的快捷键
  • 2.行末模式常用命令
    • 2.1 文件操作命令
  • 3. 切换默认编辑器nano->vim
  • 4.tip
    • 4.1显示行号

vim编辑器有3种工作模式:

  1. 指令模式–依据快捷键对文本进行编辑–复制、黏贴、删除、查找
  2. 输入模式–通过键盘向文本中输入字符的模式–i/Insertk键进入,Esc键退出
  3. 行末模式–通过命令执行打开、保存、查找替换、退出文件等操作–:进入的,回退为指令模式或者退出文件(不管指令是否有效)

1.指令模式常用快捷键

1.1 定位快捷键

(定位就是光标移动呗)

  1. 上下左右箭头移动光标
  2. gg-首行、shift+(gg)–末行、数字->shift+g–任意行
  3. w-向后移动一个单词,b-向前移动一个单词

1.2 编辑快捷键

  1. 删除行:dd-删除当前行、d3d–从当前行往下删三行
  2. 删除字符:d3向左方向键、d3向右方向键
  3. 删除行尾回车:shift+j (试了一下,没成功)
  4. 撤销上一次操作:u
  5. 恢复上一次的撤销操作:Ctrl+u(试了一下,没成功)
  6. 复制行/字符:y3y、y3向左方向键(和d命令很像)
  7. 黏贴:p

1.3查找相关的快捷键

无论使用哪种查找方式,找到一个后。按n,向下查找下一个结果。按shift+n,向上查找上一个结果。

  1. /查找内容+回车
  2. shift+/,在行末?后输入查找内容+回车
  3. 向下查找某个单词shift+8,向上查找某个单词shift+3

2.行末模式常用命令

2.1 文件操作命令

  1. 保存文件w
:w # 保存入当前文件
:w new_file.txt # 另存为 
  1. 新建一个文件new,同时关闭当前文件
  2. 退出文件q
  3. 查找替换。加了g会在同一行中找到所有查找内容。
:查找范围s/查找内容/替换内容/g
# 查找范围:当前行,不用写
# 查找范围:整个文件--%
# 查找范围:第三和第九行--3,19
# 查找范围:6到最后一行--6,$
# 查找内容:正则表达式
# 替换内容:为空可以表示删除操作

5.内容过滤

:g # 过滤出包含某个字符串的行
:v # 过滤出不包含某个字符穿的行
:g/甲:/d # 过滤出包含"甲:"的行之后,执行删除操作。
:v/^甲:/w 乙.txt # 过滤出不包含"甲:"的行之后执行,执行另存操作

3. 切换默认编辑器nano->vim

sudo update-alternatives --config editor

输出如下内容,输入"数字+enter"选择对应的编辑器。

There are 4 choices for the alternative editor (providing /usr/bin/editor).
Selection Path Priority Status
------------------------------------------------------------
0 /bin/nano 40 auto mode
1 /bin/ed -100 manual mode
2 /bin/nano 40 manual mode
* 3 /usr/bin/vim.basic 30 manual mode
4 /usr/bin/vim.tiny 15 manual mode

nano 编辑器的退出
step1:Ctrl+X --如果文件未修改直接退出,如果文件修改了输入Y保存,N不保存,ctrl+C 返回上一级
step2: 输入Y之后会提示要保存的文件名,不需要修改文件名的话直接按回车键退出
参考资料:https://jingyan.baidu.com/article/046a7b3e6552e3f9c27fa9d9.html

4.tip

4.1显示行号

:set nu         # 手动单次显示行号vim ~/.vimrc    写入set nu   # 永久显示行号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信app公众平台开发

http://www.cnblogs.com/txw1958/p/wechat-tutorial.html

用awk一些常用技巧sort uniq

统计文件中第一列中同一IP出现的次数cat test123.122.123.12 12121212121.2332.121.11 232323255.255.255.255 21321123.122.123.12 12121212123.122.123.12 1212121er2123.122.123.12 12121212eer123.122.123.12 12121212ere255.255.255.255 21321121.2332.121.11 232323255.2…

leetcode234 回文链表

请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 思路:逆置前一半,然后从中心出发开始比较即…

mysql导入source数据库sql的C++实现和封装

之前有好多人在为这件事情头疼不已: 想有一个不需要安装mysql客户端就可以导入数据库脚本,但找不到对应的api调用。所以得需要自己去实现导入数据库的实现方法: common.h #ifndef _COMMON_H #define _COMMON_H #ifdef WIN32#include <winsock2.h>typedef __int8 …

C++(12)--函数基础:按值传递、传递数组、函数指针

模块化编程--函数1. 函数基本知识2. 函数的参数2.1 按值传递机制&#xff08;小议按引用传递&#xff09;2.2 使用数组做函数参数&#xff08;用户头文件&#xff0c;const的防改&#xff09;2.3 使用二维数组作为函数的参数2.4 使用函数指针作为函数的参数2.4.1 函数指针的基本…

关于关闭SELinux的方法

原贴:http://www.diybl.com/course/6_system/linux/Linuxjs/2008629/129166.html关闭SELinux的方法&#xff1a;修改/etc/selinux/config文件中的SELINUX"" 为 disabled &#xff0c;然后重启。如果不想重启系统&#xff0c;使用命令setenforce 0注&#xff1a;seten…

leetcode739 每日温度

根据每日 气温 列表&#xff0c;请重新生成一个列表&#xff0c;对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高&#xff0c;请在该位置用 0 来代替。 例如&#xff0c;给定一个列表 temperatures [73, 74, 75, 71, 69, 72, 76, 73]&#…

scp免密码远程拷贝

有些时候&#xff0c;我们在复制/移动文件 到另一台机器时会用到scp&#xff0c;因为它比较安全。但如果每次都要输入密码&#xff0c;就比较烦了&#xff0c;尤其是在script里。不过&#xff0c;ssh有另一种用密钥对来验证的方式。下面写出我生成密匙对的过程&#xff0c;供大…

C++(13)--函数的进阶:内联、传递引用、参数默认值、重载、函数模板

模块化编程--函数的进阶1.内联函数1.1 inline基本情况1.2 inline 的前世今生-带参的宏替换2.传递引用&#xff08;重点&#xff09;2.1引用、理由、注意事项2.3 交换两个变量的数值3.返回引用3.1不要返回局部变量的引用3.2函数可以不返回值&#xff0c;默认返回传入的引用对象本…

终于,我读懂了所有Java集合——set篇

HashSet &#xff08;底层是HashMap&#xff09; Set不允许元素重复。 基于HashMap实现&#xff0c;无容量限制。 是非线程安全的。 成员变量 private transient HashMap<E,Object> map; // Dummy value to associate with an Object in the backing Map private s…

加速scp传输速度

当需要在机器之间传输400GB文件的时候&#xff0c;你就会非常在意传输的速度了。默认情况下(约125MB带宽&#xff0c;网络延迟17ms&#xff0c;Intel E5-2430&#xff0c;本文后续讨论默认是指该环境)&#xff0c;scp的速度约为40MB&#xff0c;传输400GB则需要170分钟&#xf…

tcpcopy使用方法

1、下载tcpcopy http://code.google.com/p/tcpcopy/downloads/list 2、配置、编译、安装 依此使用如下命令&#xff1a; 配置&#xff1a; ./configure 编译&#xff1a; make 安装&#xff1a; make install 3、使用方法 下面以mosquitto为例&#xff0c;说明tcpcopy的用法&a…

C++(14)--面向对象

面向对象1.面向对象编程(难点)2.类和对象demo1:地主类的实现版本1demo2:地主类的实现版本23.访问修饰符demo3:外部修改成员变量不安全(版本3)demo4: 使用封装防止直接修改成员变量&#xff08;版本3&#xff09;demo5:进一步封装&#xff1a;设置/获取名字&#xff0c;修改积分…

终于,我读懂了所有Java集合——map篇(多线程)

多线程环境下的问题 1.8中hashmap的确不会因为多线程put导致死循环&#xff08;1.7代码中会这样子&#xff09;&#xff0c;但是依然有其他的弊端&#xff0c;比如数据丢失等等。因此多线程情况下还是建议使用ConcurrentHashMap。 数据丢失&#xff1a;当多线程put的时候&…

system函数的返回值和执行脚本的返回值

1、先统一两个说法&#xff1a;&#xff08;1&#xff09;system返回值&#xff1a;指调用system函数后的返回值&#xff0c;比如上例中status为system返回值&#xff08;2&#xff09;shell返回值&#xff1a;指system所调用的shell命令的返回值&#xff0c;比如上例中&#x…

OJ汇总

国内&#xff1a;&#xff08;一下排名不分先后&#xff09; 浙江大学&#xff08;ZJU&#xff09;&#xff1a;http://acm.zju.edu.cn/ 北京大学&#xff08;PKU&#xff09;&#xff1a;http://acm.pku.edu.cn/JudgeOnline/ 同济大学&#xff08;TJU&#xff09;&#xff1a;…

C++(15)--面向对象编程实践-欢乐斗地主(vector的花式输出)

面向对象编程实践-欢乐斗地主《老九学堂C课程》《C primer》学习笔记。《老九学堂C课程》详情请到B站搜索《老九零基础学编程C入门》-------------简单的事情重复做&#xff0c;重复的事情用心做&#xff0c;用心的事情坚持做(老九君)---------------要求&#xff1a;实现录入及…

Google Protobuf 使用介绍

直接在 www.google.com.hk 上搜索google protobuf 后下载官方版本。 官方版本支持C\Java\Python三门语言。 还有很多非官方的语言版本支持&#xff0c;如C\NET(C#/Vb.net)\Flex(AS3)等. 要通信&#xff0c;必须有协议&#xff0c;否则双方无法理解对方的码流。在protobuf中&…

epoll的再次认识

使用mmap加速内核与用户空间的消息传递。 这 点实际上涉及到epoll的具体实现了。无论是select,poll还是epoll都需要内核把FD消息通知给用户空间,如何避免不必要的内存拷贝就很 重要,在这点上,epoll是通过内核于用户空间mmap同一块内存实现的。而如果你想我一样从2.5内核就关…

leetcode82. 删除排序链表中的重复元素 II

给定一个排序链表&#xff0c;删除所有含有重复数字的节点&#xff0c;只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 思路&#xff1a;判断n…