专栏首页星汉技术Linux基础之vim 原

Linux基础之vim 原

一、vim介绍

vim是一个类似vi的文本编辑器,不过在vi的基础上增加了很多新特性,vim被公认为类vi编辑器中最好用的一个。

vim是vi发展出来的一个文本编辑器。编译及错误跳转等方便编程的功能丰富,在实际工作中被广泛使用。

和Emacs并列称为类Unix系统用户最喜爱的编辑器。

为什么需要学习vim?

所有的Linux系统都会内建vi文本编辑器,其他的文本编辑器则不一定存在。

很多软件的编辑接口都会主动调用vi,例如visudo、crontab等

vim可视为vi的高级版本。

vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序开发。

二、Vim的三种模式

Vim有三种模式,分别是一般模式、编辑模式、命令模式。

进入一般模式:

[root@localhost ~]#vim test

进入编辑模式:

按下键盘上i键,进入编辑模式,编辑模式下除了“Esc键”都作为输入键。输入hello vim,按Esc回到一般模式。

进入命令模式:

在一般模式下,输入“:”,进入命令模式,“:wq”保存并退出。

1、一般模式

以vim打开一个文件就直接进入一般模式(默认模式)

可以使用上下左右移动光标来移动,也可以使用删除字符或删除整行来处理文件内容,也可以使用复制、粘贴来处理文件数据。但无法任意编辑文件内容。比如说:我想写一个123。

1.一般模式下的快捷操作

移动

h或←光标左移一个字符。如果是20h,表示左移20个字符。

j或↓光标下移一个字符   同上

k或↑光标上移一个字符   同上

l或→光标右移一个字符   同上

[Ctrl]+[f]屏幕向下移动一页   Page Down!!

[Ctrl]+[b]屏幕向上移动一页  Page Up !!

0或[Home]移动到此行最前面字符处!!

$或[End]移到光标所在行的行尾!!

H:光标移到当前屏幕最上方行的第一个字符!!

M:光标移到当前屏幕中间行的第一个字符!!

L:光标移动到当前屏幕最下方行第一个字符!!

G:移到此文件最后一行!!!

nG:移到第n行

gg:相当于1G,即移到第一行!!!

n[Enter]:光标下移n行

删除

x:向后删除一个字符

nx:向后删除n个字符(n为数字)

X:向前删除一个字符

dd:删除光标所在行的正行(!!!)

ndd:删除光标所在行以下n行(n为数字,包含当前行在内)

d1G/dgg:删除光标所在行到第一行所有数据(包括所在的行)

dG:删除光标所在行到最后一行(!!)

d$或d end:删除光标所在处到同行最后一个字符(!!)

d0或d home:删除光标所在处到同行第一个字符。(!!)

复制

yy:复制光标所在行(!!)

nyy:复制光标所在向下n行(n为数字)

y1G:复制光标所在行到第一行所有数据

yG:复制光标所在行到最后一行所有数据

y$:复制光标所在处到同行最后一个字符

y0:复制光标所在处到同行第一个字符

p:将已复制的数据粘贴到光标所在下一行

P:将已复制的数据粘贴到光标所在上一行

u:复原前一个操作(类似于windows中的ctrl+z)!!!

替换

r:替换光标所在处字符一次。

R:一直替换光标所在处文字直到按下Esc(!!!)。

2.一般模式进入编辑模式

i:从光标所在处插入(!!!)

I:从所在行第一个非空白字符处插入(!!)

a:从光标所在下一个字符处插入

A:从光标所在行最后一个字符处插入(!!)

o:在光标所在处下一行插入新的一行(!!)

O:在光标所在处上一行插入新的一行(!!)

2、编辑模式

在一般模式中可以删除、复制、粘贴等,按下i、I、o、O、a、A、r(快速替换)、R等任何一个字母后进入编辑模式。并在左下方出现INSERT或REPLACE。

该模式下可以输入文件内容。按下<Esc>返回一般模式。

3、命令模式

在一般模式当中,输入:/?三个字符中的任何一个按钮,就可以将光标移动到最下面那一行。

在这个模式当中,可以提供查询、替换等功能。同时存盘(保存)、离开vi、显示行号等等命令都是在此模式进行。 

1.查询

/word:向下查找单词“word”(!!!)

?word:向上查找单词“word”(!!!)

n:表示重复前一个查找操作。

N:与n相反(反向查找)。

:set nu 显示行号

:set nonu 取消显示行号

2.替换

:s/word1/word2/g:在当前行将word1替换成word2(!!)

:%s/word1/word2/g:在当前文件将word1替换成word2(!!)

:n1,n2s/word1/word2/g:在n1到n2行查找word1替换成word2 (n1、n2为数字) 

:1,$ s/word1/word2/g:从第一行到最后一行查找word1替换成word2

:%s/word1/word2/gc:同上,在替换前确认是否替换。(!!!)只能单行确认,需要逐步确认。在该模式中,“y”确认更换,“n”否定更换,“a”全部替换,“q”退出,“l”表示单行替

换,并退出更换状态。Ctrl+e向下换行,Ctrl+y向上换行。

3.保存退出

:w [filename]:另存为filename。

:r [filename]:读取filename指定文件中的内容到光标所在的行。

:n1,n2 w [filename]:将n1到n2行另存为filename。

:! command:临时切换到命令行模式下执行command命令。

例如“:!find / -name Helllo.java”即可在vim当中查看/home下面以ls输出的文件信息。

:wq:保存后退出。

:q:不保存退出(未改可以离开,如果修改了需要q!强制离开)

:q!:强制退出,不保存修改。

:wq!:强制保存退出。

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hive应用:选取分隔符 原

    在使用hive的时候,分隔符是必不可少的,当学习的时候使用的都是常规分隔符,比如:逗号“,”、竖线“|”等,这些键盘上都可以直接输入的字符,但是这些字符只要是键...

    云飞扬
  • Linux基础之权限 原

    chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...]

    云飞扬
  • Maven常用命令 原

    说到命令,则不得不提一下环境变量,在之前的博文中简单提了一下环境变量的配置,这里具体说一下。说完环境变量的配置,然后就是Maven的常用命令,这里说的是常用的几...

    云飞扬
  • “编辑器之神”vim技巧

    末行模式主要用于保存或退出文件,以及设置Vim编辑器的工作环境,还可以让用户执行外部的Linux命令或跳转到所编写文档的特定行数。要想切换到末行模式,在命令模式...

    对弈
  • 「网站优化」网站优化我们该不该放弃假期的时间对网站SEO优化

    面对放大长假相信很多SEOer都对网站是否优化都抱有不同的看法,那么假期对网站SEO优化应该怎么安排。

    大脸猫
  • 使用 SQL Server 2008 数据类型-xml 字段类型参数进行数据的批量选取或删除数据

    我们经常有这样的需求,批量的删除或者选取大量的数据,有非常多的Id值,经常使用in条件查询,如果你使用拼接字符串的方式,可能遭遇SQL语句的长度限制4000个字...

    张善友
  • python yield关键词使用总结

    简单来说,yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个 gene...

    授客
  • Django接口新增页面编写_2(十五)

    做一个好看的页面真的是一件困难的事情,所以还是遵循复制后修改的原则,首先是借鉴httpbin页面的方式进行块状展开。

    zx钟
  • python测试开发django-67.templates模板变量取值

    django 的模板里面变量取值是通过句点语法来取值,就是一个点(.)符号。取值的对象也可以是字符串,int类型,list列表,字典键值对,也可以是一个类的实例...

    上海-悠悠
  • 解析不规则csv文件文件帮助类

    public class SplitHelper { /// <summary> /// 拓展分割 /// </summary> ...

    opengps

扫码关注云+社区

领取腾讯云代金券