首页 > 系统相关 >Linux基础-Vim(一)入门和常用命令

Linux基础-Vim(一)入门和常用命令

时间:2022-11-25 14:36:22浏览次数:49  
标签:字符 常用命令 模式 Vim 一行 Linux 字符串 移动 光标

ps:这是本公众号第一篇推文,小白第一次写作,希望大家支持,如有错误,望批评指正。

在所有的UNIX-Like系统中都会内建vi文本编辑器,vi是老式的文本编辑器,其他的文本编辑器则不一定会存在。而vim具有程序编辑的能力,可以主动地以字体颜色辨别语法的正确性,方便程序设计。

vi分为命令模式(Command mode)、编辑模式(Insert mode)、底线命令模式(Last line mode)3种模式。


命令模式(commandmode)

用vi打开一个文件就进入了命令模式,在此模式中,你可以用上下左右键移动光标,也可以使用x(删除字符)、删除整行、复制、粘贴等操作处理文件的内容。

编辑模式(insertmode)

在此模式中,你可以进行文本编辑。在进入命令模式后,需要按下[i,I,o,O,a,A,r,R]等任何一个字母进入此模式。按下按键后,在窗口下方会有显示当前的操作,如[INSERT]和[REPLACE],此时就是进入了编辑模式。退出编辑模式按[Esc]。

底线命令模式(last line mode)

在命令模式中按下[:]或[/]或[?]中的任意一个即可进入底线命令模式。进入此模式后,光标会移动到最下面一行。在此模式下,你可以执行查询数据、显示行号、批量替换字符等操作。

 

    注意:命令模式可以与编辑模式及底线命令模式切换,但编辑模式与底线命令模式之间不能直接切换。


接下来我们来尝试使用vim程序编辑器吧!

首先,我们先使用vim创建一个t1.txt文本文件。命令为vim + 新建的文件名。

Linux基础-Vim(一)入门和常用命令_字符串

创建后我们便进入了这个文件,当然,新文件为空文件。可以看到命令行最下面那一行显示了文件名称“t1.txt”,后面的中括号里面提示这是一个新文件。

Linux基础-Vim(一)入门和常用命令_数据_02

然后我们按下i后进入编辑模式,同样的,在最下一行显示了“INSERT”,提示进入了插入模式。

Linux基础-Vim(一)入门和常用命令_数据_03

我们编辑一段文本。在提示信息里面还有当前光标所在的位置,如下图,当前光标位于第3行,第10个字符位。

Linux基础-Vim(一)入门和常用命令_字符串_04

按下[Esc]回到命令模式,输入:(冒号)进入底线命令模式,输入wq保存并退出。

Linux基础-Vim(一)入门和常用命令_命令模式_05

最后,我们使用cat指令查看文件内容。

Linux基础-Vim(一)入门和常用命令_字符串_06

我们使用vim打开一个文本文件,进入文本文件,可以看到最下面一行的提示信息中有文件的行数和字符数。如下图,此文件一共21行,1291个字符。

Linux基础-Vim(一)入门和常用命令_命令模式_07

 

在命令模式下的一些功能键(标红指令为常用指令)

[h]或[←]左箭头‍

光标向左移动一个字符

[j]或[↓]下箭头

光标向下移动一个字符

[k]或[↑]上箭头

光标向上移动一个字符

[l]或[→]右箭头

光标向右移动一个字符

[数字]+[h]或[j]或[k]或[l]或上下左右箭头

指定次数的移动

)

光标移至句尾

(

光标移至句首

}

光标移至段落最后一个字母

{

光标移至段落第一个字母

[Ctrl]+ f

屏幕向下移动一页

[Ctrl]+ b‍

屏幕向上移动一页

‍‍

[Ctrl]+ d

屏幕向下移动半页

[Ctrl]+ u

屏幕向上移动半页

+

光标移动到非空格符的下一行(即移动到下一行除空行外第一个非空格符处)

-

光标移动到非空格符的上一行(即移动到上一行除空行外第一个非空格符处)

[数字n]+[空格]

光标向右移动到光标所在处数起的第[数字n]个字符处

[数字0]或[Home]

光标移动到本行行首

[$]或[End]

光标移动到本行行尾

H

光标移动到屏幕最上方一行的首个字符

M

光标移动到屏幕中间一行的首个字符

L

光标移动到屏幕最下方一行的首个字符

G

光标移动到此文件的最后一行的首个字符

[数字n]+G

光标移动到此文件的第n行

数字n+

光标下移n行

数字n-

光标上移n行

数字n$

光标移至第n行尾

gg

光标移动到此文件的第一行

[数字n]+[enter]

光标向下移动n行

[/]+查询的字符串

向光标之下寻找一个字符串

[?]+查询的字符串

向光标之上寻找一个字符串

n

重复前一个查找的操作

N

反向进行前一个查找操作

:[行数字1],[行数字2]s/源字符串/目标字符串/g

在[行1]到[行2]之间寻找源字符串并替换成目标字符串

:1,$s/字符串1/字符串2/g

从第一行到最后一行寻找字符串1,并将该字符串替换为字符串2

:1,$s/字符串1/字符串2/gc

从第一行到最后一行寻找字符串1,并将该字符串替换为字符串2,且在替换前显示提示字符串给用户确认是否需要替换

x

向后删除一个字符

X

向前删除一个字符

[数字n]+[x]

向后连续删除n个字符

dd

删除(剪切)光标所在的一整行

[数字n]+[dd]

删除(剪切)光标所在的向下n行

d1G

删除(剪切)光标所在到第一行的所有数据

dG

删除(剪切)光标所在到最后一行的所有数据

d$

删除(剪切)光标所在处到本行的最后一个字符

d0

删除(剪切)光标所在处到本行的第一个字符

yy

复制光标所在的那一整行

[数字n] + yy

复制光标所在的向下n行数据

y1G

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

yG

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

y0

复制光标所在的那个字符到该行行首的所有数据

y$

复制光标所在的那个字符到该行行尾的所有数据

p

将已经复制的数据在光标下一行粘贴

P

将已经复制的数据在光标上一行粘贴

J

将光标所在行与下一行的数据结合成同一行

c

重复删除多个数据

u

恢复前一个操作

[Ctrl]+r

重复上一个操作‍‍

.(小数点)

重复前一个操作



命令模式切换到编辑模式功能键(标红指令为常用指令)

i

进入插入模式(Insert mode),从光标所在处插入

I

进入插入模式(Insert mode),从目前所在行的第一个非空格符处开始插入

a

进入插入模式(Insert mode),从光标所在的下一个字符开始插入

A

进入插入模式(Insert mode),从光标所在行的最后一个字符处开始插入

o(大写字母o)

进入插入模式(Insert mode),从光标所在的下一行处插入新的一行

O(大写字母O)

进入插入模式(Insert mode),从光标所在的上一行处插入新的一行

r

进入替换模式(Replace mode),替换光标所在的一个字符一次

R

进入替换模式(Replace mode),一直替换光标所在的字符,直到按下[Esc]停止

[Esc]

退出编辑模式,回到命令模式



命令模式切换到底线命令模式功能键(标红指令为常用指令)

:w

将编辑的数据写入硬盘文件中

:w!

强制写入该文件,但具体看用户对文件的权限

:q

退出vim

:q!

强制退出不保存

:wq

保存并退出

:wq!

强制保存并退出

ZZ

若文件没有修改,则不保存退出;若文件已经修改过,则保存并退出

:w [文件名]

将编辑后的文件另存为新文件

:r [文件名]

在编辑的数据中,读入另一个文件的数据,即在当前文件中追加新文件

:n1,n2 w [文件名]

将n1到n2的内容保存为新文件

:! command命令

暂时退出vi到底线命令模式下执行command的显示结果

:set nu

显示行号

:set nonu

取消显示行号

参考文献:

    《鸟哥的Linux私房菜基础学习篇》(第四版)

侵权即删。


标签:字符,常用命令,模式,Vim,一行,Linux,字符串,移动,光标
From: https://blog.51cto.com/u_15891283/5886662

相关文章

  • linux网络命令
    1.env——查看环境变量资源可以查看到当前用户环境配置  2.ifconfig可以查看网卡数量,IP地址、mac地址 3. ps-ef查看所有进程  4.ss-t-a显示所有tcp......
  • linux 安装 安全狗 步骤
    先下载安装包wgethttp://download.safedog.cn/safedog_linux64.tar.gz1234567<emid="__mceDel">ls tarxzvfsafedog_linux64.tar.gzls cdsa......
  • linux命令 find
    find是Linux中强大的搜索命令,不仅可以按照文件名搜索文件,还可以按照权限、大小、时间、inode号等来搜索文件。但是find命令是直接在硬盘中进行搜索的,如果指定的搜索......
  • linux命令 grep
    Linuxgrep命令用于查找文件里符合条件的字符串。grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范......
  • Linux下centOS和redhat测试数据usleep_nanosleep_select
    系统不一样,gcc版本也不一样。其中centOS刚租任不久的没有甚么用户进程运行。redhat测试服务器有用户进程在后台运行//编译gcctest.c//运行./a.out#include<stdio.h>#inc......
  • 前端学习 linux —— 软件安装(Ubuntu)
    软件安装(Ubuntu)本篇主要讲解ubuntu中软件的安装、apt的源、内网部署案例(graylog为例),最后是python开发准备。apt和rpm在linux第一篇我们知道如果机器是ubunt......
  • Linux下regex.h知识点和使用样例
    查看:manregex.h定位:find/-nameregex.h2>/dev/null<regex.h>(P)POSIXProgrammer’sManual<regex.h>(P)PROLOGThismanualpag......
  • Linux下vim增加ascii流程图绘制功能试验
    简单用法(在英文输入模式下)开启:DIstart关闭:DIstop空格按一下启动绘制,空格再按一下启动擦出功能当绘制时,上下左右自动直线和转折。  剪头向上shift+6、箭头下v 、......
  • Linux下测试使用unzip
    win7下整个目录压缩为后缀为.zip的格式,通过ftp上传到服务器。 linux查看命令manunzip整个文件夹解压unzip名.zip1.如果文件夹为空直接解压进去unzipeasyProc.zipAr......
  • 【Linux】linux | shell | 获取系统当前时间
    一、说明        1、linux        2、shell脚本二、脚本1)创建脚本文件touch/tmp/get_time.sh2)编辑脚本文件vi/tmp/get_time.sh3)复制内容#!bin/bashtime=$......