linux 神的编辑器,编辑器之神-vim的使用,编辑器神-vim

编辑器之神-vim的使用,编辑器神-vim

vim即vi的升级版;在linux中,vi是vim的软链接,我们敲vi和vim出来的都是vim;

纯手打,如有错误,敬请指出。

vi的三种模式及简单使用

vi三种模式

命令模式(默认):是文件的入口,可以实现文件的定位,复制,翻页等;

末行模式:是文件的出口,w write,q quit,wq 写入并保存等;

编辑模式:正常的文字编辑;

三种模式的转换

命令模式—>i,a,o,I,A,O—>编辑模式—>esc—>命令模式

命令模式—>”:”—>末行模式—>esc—>命令模式

vi的简单使用

vi 已有文件:打开已存在的文件;

vi 不存在文件:新建文件;

vi 文件:打开文件,光标在行首;

vi 文件 +:打开文件,文件在末尾;

vi 文件 +行数:打开文件,并且指定行数;

例如:

vi hello.py #打开hello文件

vi hello.py +20 #打开hello文件并且把光标跳到第20行

vi hello.py + #打开hello文件并且光标跳到最后一行

异常处理之交换文件

如果我们在vi编辑文件时,忽然关闭终端,或者异常卡出,就会出现交换文件,用ls -al可查看,存在.swp结尾的交换文件;

出现交换文件后,再一次vi 原来的文件时,就会报错,我们按照提示D删除交换文件即可;

命令模式转编辑模式

命令模式下:

i

插入光标前一个字符

I

插入行首

a

插入光标后一个字符

A

插入行末

o

向下新开一行,插入行首

O

向上新开一行,插入行首

保存退出编辑

在命令模式下保存,shift+z+z

末行模式下:

w

保存

q

退出

wq

保存退出

x

保存退出

q!

不保存强制退出

vim移动,跳转

上下左右移动

命令模式:

k

上移

j

下移

h

左移

l

右移

hjkl控制上下作用

行内移动

命令模式下:

0:到达行首

^:到达行首第一个不是空白字符的位置

$:到达行尾

w:word,往后移一个word

b:back,往前移一个word

行数移动

命令模式下:

gg:快速移动到文件的第一行

G:快速移动到文件最后一行

num gg:快速跳转到指定行

num G:快速跳转到指定行

末行模式下:

:num 回车:在末行模式下跳转到指定行

其中用的最多的还是num G

上下翻页

Ctrl+b:向上翻一页

Ctrl+f:向下翻一页

Ctr-d: 向下翻半屏

Ctr-u: 向上翻半屏

H:跳转到屏幕顶部

M:跳转到屏幕中间

L:跳转到屏幕底部

注意HML跳转的是屏幕,不是文件

其他跳转

{: 按段移动,上移

}: 按段移动,下移

%:移到括号的左右边

复制,粘贴,删除(剪切)

复制粘贴

命令模式下:

y:和移动命令一起使用,复制

yy:复制一行,支持nyy复制多行

p 粘贴

删除(剪切)

命令模式下:

x: 删除光标后一个字符,相当于 Del

X: 删除光标前一个字符,相当于 Backspace

dd: 剪切光标所在行,n dd 删除指定的行数

d:和移动命令配合使用,删除移动命令对应的内容;

D: 删除光标后本行所有内容,包含光标所在字符;

d0: 删除光标前本行所有内容,不包含光标所在字符;

dw: 将光标移到单词首字母,再dw,可删除单词

练习:

5x:删除光标及往后五个字符

v+%+x:删除选中的括号内的内容

d+6+G:把光标所在行和第六行之间的内容全部删除,所在行能大于6也能小于6

y+{ +n+G+p:复制从光标往后的一段内容,并跳到指定行进行粘贴

yy空行+5+p:复制空行,并且粘贴5个空行

复制删除总结和扩展

d和x在vi中看起来是删除操作,但本质上其实是剪切操作,剪切后会将内容存放在和剪切板功能相同的缓冲区;

同样,复制其实也是将内容放在缓冲区;

注意,在其他图形界面复制的内容在vi中不能直接通过p进行粘贴,需要右键粘贴,因为剪切板和缓冲区不是同一个;

可视模式(选中文本)

在命令模式下,

v,可视模式,从光标选中位置,开始向上向下选中文本,选中的位置,是原来光标的位置;

V,可视行模式,从光标选中行开始,向上或向下选中光标所经过的每一行;

Ctrl+v,可视块模式,垂直方向选中文本,和sublime的ctrl很像,具体可自己实验;

可视模式可以配合 d, y, >>, << 实现对文本块的删除,复制,左右移动

可视模式还可以和段落移动等结合使用,例如:

V+G,表示选中从当前行一直到末行

V+gg,表示选中从当前行到文件首行,

V+{,

V+},

v+%,括号等等。

替换和查找

小幅替换

命令模式下:

r:将光标下的字符进行替换;例如,r+H:将那个光标下的字符替换成H

R: 替换当前行光标后的字符;例如,hello单词首字母,R+world:将hello单词替换成world;

全局替换

末行模式下,

固定格式:%s///g

格式:%s/旧文本/新文本/g

例如:

把python全部替换成world:%s/python/world/g

将第一行至第10行之间的abc替换成123:1, 10s/abc/123/g

可视区域替换

先用可视模式选中要替换的范围,再进入末行模式进行替换

格式:s/旧文本/新文本/g

V+向下移动光标到第11行+:进入末行模式+s/world/python/g:将当前行到第11行的所有world替换成python

确认替换

格式:%s/旧文本/新文本/gc

会查找出全部的旧文本,然后逐个的让你来确认是否替换,替换y,不替换n,替换所有a,不想替换了就q

查找

命令模式下:

/+str:查找指定字符串

n:查找下一个被高亮的字符串

N:查找上一个被高亮的字符串

单词快速匹配:

*:向后查找当前光标所在单词

#:向前查找当前光标所在单词

不想高亮,可以查找一个不存在的单词即可

其他必知必会

撤销反撤销

命令模式下:

u 撤销

ctl+r 反撤销

文本行移动(缩排)

命令模式下:

>>: 文本行右移

<<:>

练习:

V+向下三行+>:将选中的三行向右缩进四个空格,同理,左缩进也是

V+向下三行+>+.+.:将选中的三行向右缩进四个空格后,再右移四格,再右移四格,即一个点就重复执行一次

重复执行

命令模式下:

.: 重复上一次操作的命令

标记

当我们在开发时,如果有某一行需要稍后再来处理,可以先对它进行标记,后面需要处理时再进行快速跳转

标记:m+x (x属于[a-z][A-Z])

跳转:'+x

可以分别标记多行为多个别名,再跳转;

如果给多行用了同一个别名,那么别名指向的是最新的一行

vim里执行 shell 下命令

末行模式里输入!,后面跟命令

末行命令扩展

e .:浏览当前目录下的所有文件

e 文件名:切换编辑文件

n 文件名:新建并编辑文件

w 文件名:如果原来没有文件,就创建新文件并将源文件的内容写入新文件,但编辑的还是源文件

切换文件之前,必须保存原来编写的文件

末行模式下w命令的作用讲解:

在实际开发时,用来起阶段性备份的作用,和git的作用类似

分屏命令

末行模式下,

sp:横向分屏

vsp:纵向分屏

切换窗口:Ctrl+w,w

互换窗口:r

关闭当前窗口:c,但是不能关闭最后一个窗口

退出当前窗口:q,能退出最后一个窗口

关闭其他窗口:o

练习

1.连续打出十个*

命令模式,10+i+*+esc;后面也可以加.,重复执行;

8+i+print("hello world")+enter+esc:重复8行代码;

但建议在进入编辑模式之前,不要按数字,不然按了数字编辑了又esc了,就发现辛苦敲得代码粘贴了很多。

2.给多行代码添加注释

命令模式,将光标移动到要注释的第一行,^移动到行首,

Ctrl+v进入可视块模式,向下选中多行要注释的代码,

I进入编辑模式,在行首添加#,esc。

http://www.dengb.com/Linuxjc/1345680.htmlwww.dengb.comtruehttp://www.dengb.com/Linuxjc/1345680.htmlTechArticle编辑器之神-vim的使用,编辑器神-vim vim即vi的升级版;在linux中,vi是vim的软链接,我们敲vi和vim出来的都是vim; 纯手打,如有错误,敬请指...

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

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

相关文章

爬虫python下载视频_用python做爬虫下载视频

用python有一段时间了&#xff0c;对python是十二分喜爱&#xff0c;在我看来python是个好工具&#xff0c;可以轻松简洁的帮我完成一些我想要完成的工作。下面和大家分享一下我用python爬取某网站视频的案例。用python去保存网站的视频&#xff0c;主要是为了后续的查看和备份…

python3软件怎么用_Python3学习之路~4.4 软件目录结构规范

为什么要设计好目录结构?可读性高: 不熟悉这个项目的代码的人&#xff0c;一眼就能看懂目录结构&#xff0c;知道程序启动脚本是哪个&#xff0c;测试目录在哪儿&#xff0c;配置文件在哪儿等等。从而非常快速的了解这个项目。可维护性高: 定义好组织规则后&#xff0c;维护者…

linux安装nginx1.9,CentOS7.2安装Nginx 1.9

今天在最新的centos7.2上安装nginx1.9&#xff0c;希望安装流程对你有所帮助&#xff0c;一定要查看对应centos的版本。一、确认一下centos的版本[rootlocalhost ~]# cat /etc/redhat-releaseCentOS Linux release 7.2.1511 (Core)二、安装依赖包和开发工具&#xff1a;yum ins…

python获取文件夹下文件_Python 获取指定文件夹下的目录和文件的实现

经常有需要扫描目录&#xff0c;对文件做批量处理的需求&#xff0c;所以对目录处理这块做了下学习和总结。Python 中扫描目录有两种方法&#xff1a;os.listdir 和 os.walk。 一、os.listdir 方法 os.listdir() 方法用于返回指定的目录下包含的文件或子目录的名字的列表。这个…

数据挖掘算法_算法篇(01) 数据挖掘算法初探

前言无论是传统行业&#xff0c;还是互联网行业。掌握数据&#xff0c;就是掌握规律。当你了解了市场数据&#xff0c;对它进行分析&#xff0c;就可以得到市场规律。当你掌握了产品自身的数据&#xff0c;对它进行分析&#xff0c;就可以了解产品的用户来源、用户画像等等。所…

java中怎么判断一段代码时线程安全还是非线程安全_24张图带你彻底理解Java中的21种锁...

(给ImportNew加星标&#xff0c;提高Java技能)转自&#xff1a;悟空聊架本篇主要内容如下&#xff1a;本篇文章已收纳到我的 Java 在线文档、 Github。我的 SpringCloud 实战项目持续更新中。帮你总结好的锁&#xff1a;序号锁名称应用1乐观锁CAS2悲观锁synchronized、vector、…

linux安装icc步骤,怎麼安装不到 icc?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我是用 arch linux, 安装的 icc 版本是 2011.11.339(ia32 x86_64)错误如下:Step no: 5 of 6 | Installation--------------------------------------------------------------------------------Each component will be installed…

利用python制作漂亮的词云图_利用python制作漂亮的词云图

新建一个新的目录随便找个地方新建一个目录,比如我在F盘下面新建一个word_cloud文件夹(名字都是随便取),并且打开这个文件夹.把刚刚下载的msyh.ttc复制到这里.新建一个my_word_cloud.py在这里.然后可以在my_word_cloud.py写代码了,首先导入相关的包##对于NLP(自然语言处理)来说…

python大概学多久_自学Python要学多久可以学会?

如果是自学&#xff0c;从零基础开端学习python的话&#xff0c;按照每个人理解能力的不同&#xff0c;大致上需求半年到一年半左右的时刻&#xff0c;当然&#xff0c;如果有其它编程言语的经历&#xff0c;入门还是比较快的&#xff0c;大概需求2~3个月可以用Python言语编写一…

u盘 linux centos 5.3,鸟哥linux私房菜学习笔记,U盘安装centos5.3不能正常进入图形界面的问题...

前面说过自己成功引导了centos系统&#xff0c;现在进入启动界面&#xff0c;首次进入会进行相关设置&#xff0c;按照步骤一步一步完成&#xff0c;取消完光盘安装&#xff0c;点击下一步&#xff0c;就进入下面这个界面&#xff0c;没有登录框。。。没错&#xff01;怎么蓝屏…

偏移shaderuv_Unity Shader 之 uv动画

Unity 动画Unity Shader 内置时间变量引入时间变量名称类型描述_Timefloat4t是自该场景加载开始所经过的时间&#xff0c;4个分量分别是(t/20, t, 2t, 3t)_SinTimefloat4t是时间的正弦值&#xff0c;(t/8, t/4, t/2, t)_CosTimefloat4t是时间的余弦值&#xff0c;(t/8, t/4, t/…

将excel转为python的字典_python读取excel表并把数据转存为字典

excel表如下&#xff1a;我们需要通过使用python的xlrd方法先读取excel&#xff0c;再遍历赋值给字典。代码如下&#xff1a; importxlrdclassRead_Ex():defread_excel(self):#打开excel表&#xff0c;填写路径 book xlrd.open_workbook("../Data/test.xlsx")#找到s…

linux中的改变bin级别,Linux常用命令

关机命令&#xff1a;shutdown -h now / shutdown -r now / reboot切换图形化界面&#xff1a;startx 切换到命令行&#xff1a;注销即可添加用户&#xff1a;useradd xiaoming设置密码&#xff1a;passwd xiaoming删除用户&#xff1a;userdel xiaoming 【userdel -r x…

pythonencoding etf-8_etf iopv python 代码30个Python常用小技巧

1、原地交换两个数字x, y 10, 20print(x, y)y, x x, yprint(x, y)10 2020 102、链状比较操作符n 10print(1 print(1 > n < 9)TrueFalse3、使用三元操作符来实现条件赋值[表达式为真的返回值] if [表达式] else [表达式为假的返回值]y 20x 9 if (y 10) else 8print(x…

micropython是啥 知乎_嵌入式开发必备调试工具:Micro-Lab

在工作中&#xff0c;以什么样的方式向领导汇报工作最直接高效呢&#xff1f;当然是图形界面&#xff01;图形界面更好表达一个程序设计的逻辑思维&#xff0c;一目了然&#xff0c;本次介绍的Micro-Lab出自风媒电子-赵工之手。 1.什么是Micro-Lab? Micro-Lab可以称得上是迄今…

win10树莓派改ip_Window 10通过网线和Wifi连接树莓派

几个月前买了个树莓派&#xff0c;扔在一边没有捣鼓&#xff0c;今天搞定了笔记本通过家里的wifi登录树莓派&#xff0c;下面列出设置过程。实验环境:网络&#xff1a;只有wifi材料&#xff1a;笔记本一台(Win10)&#xff0c;树莓派一台&#xff0c;EDUP USB无线网卡一枚&#…

双机通信c语言程序,双机通信(C语言、主机和从机共用程序)

//头文件#include//循环移位文件#define uchar unsigned char//宏定义#define uint unsigned intsbit key1P3^5; //位声明uchar code table[]{0X00,0x3f,0x06,0x5b,//数码管显示的数值0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uchar table_tr[6];//暂存最后按下的六个数值uchar…

python读取大文件目录_65.Python读取大文件

方式一 import os path r"C:\Users\yzt\Desktop\work\InfosecTestPlatform\libs\Log\mainline1-nohup.log" ##################### """ file.seek(off, whence0)&#xff1a; 从文件中移动off个操作标记&#xff08;文件指针&#xff09;&#xff0c…

java设计按月每天签到_java实现app签到功能

本文实例为大家分享了java实现app签到功能的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下1.首先设计二张表&#xff0c;第一张表sign_calc记录用户连续签到次数&#xff0c;字段id,user_id,continue_days&#xff0c;第二张表sign_detail签到详情表id,user_id,sign…

c语言第四版课后答案第三章3.4,算法与数据结构C语言版课后习题答案(机械工业出版社)第3,4章 习题参考答案...

第3章栈和队列一、基础知识题3.1 有五个数依次进栈&#xff1a;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5。在各种出栈的序列中&#xff0c;以3&#xff0c;4先出的序列有哪几个。(&#xff13;在&#xff14;之前出栈)。【解答】34215 &#xff0c;34251&#x…