Linux文本编辑器——vim「建议收藏」

2022-09-18 11:52:13 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

Linux文本编辑器 ed pico emacs nano gVim vim vi vim 是文本编辑器 不是文字处理工具(office liboffice wps) 你的运维生涯99.999999% 离不开它 rhel(centos)里最小化安装没有vim只有vi,记得装包 vim 基于perl开发的,所以vim依赖perl环境

vim有三种模式 分别为: 一般模式: vim打开文件默认进入的就是一般模式 调整光标位置 复制 删除操作 编辑模式: 输入内容 末行模式(命令模式): 对整个文件进行操作 搜索 保存 全局替换

三种模式的切换方式: 一般模式 i/a/o/r ——-> 编辑模式 <——- [esc] : / ? ——-> 命令模式 <——- [esc]

一般模式的操作 移动光标的方法 1、上下左右四个箭头键 2、h左 j下 k上 l右

数字 hjkl(方向键) ctrl f page down 下翻页 ctrl b page up 上翻页 ctrl d 向下移动半页 ctrl u 向上移动半页 光标移动到非空白字符处的下一行 – ———————–上一行 数字 space 向右移动N个字符 0 home 移动到行首 $ end 移动到行尾 H 光标移动到屏幕最上方所在行的行首 M 屏幕中央所在行的行首 L 最下方所在行的行首 G 光标移动到文件的最后一行 数字 G 移动到指定行 gg 移动到文件的第一行 相当于1G 数字 enter 光标向下移动指定行

搜索&替换

    /keyword  从光标所在位置向下搜索   n下一个  N上一个

    ?keyword  —————上—    n 上一个  N 下一个

    :%(全文) s/old/new/g   全文搜索替换

    :n1,n2 s/old/new/g       n1与n2之间进行替换 

    :n s/old/new/g           只在n行替换

    :n1,n2 s/old/new/gc(替换前询问)       n1与n2之间进行替换询问是否替换

    :n1,n2 s/^#//  n1与n2之间的行开头去掉#号

    :n1,n2 s/^/#/  —————–加上#–

    :g /^s*$/d   删除全文中的空行  ^代表开头   s  代表空格  *通配符 $ 代表结尾

删除 复制 粘贴   d删除         x/X   x=从光标所在处向后删除一个字符  X=从光标所在处向前删除一个字符     数字 x 同上,向前/向后删除n个字符     dG     删除光标所在行处到最后一行     d1G    删除光标所在行处到第一行的所有     d$     删除光标所在处到行尾     d0     删除光标所在处到行首     dd     删除光标所在行     数字 dd 删除n行   y复制         yy      复制光标所在行     数字 yy 复制n行     y1G     复制光标所在行处到第一行     yG      复制光标所在行处到最后一行     y0      复制光标所在处到行首     y$      复制光标所在处到行尾   p粘贴     p/P     p=从光标所在行下一行粘贴 P=上一行粘贴     u       撤销

  区块选择     v           字符选择     V           行选择     ctrl V      区块选择     y        复制     d           删除 d 删除

编辑命令 i/I i=光标前插入 I=光标所在行行首 a/A a=光标后 A=———–尾 o/O o=光标所在行下一行插入 O=光标所在行上一行插入 r/R (替换) r=替换光标所在处的字符 R=从光标所在行开始替换 光标所在处开始向后替换,

保存、退出 :w 保存 :w! 强制保存 :q 退出 :q! 强制退出 :wq 保存退出 :wq! 强制保存退出 :x 相当于wq ZZ 相当于wq! :w /path/filename 将内容保存到指定位置 :r /path/filename 将内容从指定文件读取过来

查看文件 cat more -数字 一次显示n行 less -N 显示行号 多配合别的命令使用 例如:PS -ef | less 作用分页显示 tail(查看日志) tail -f = tailf

多文件编辑

vim filename1 filename2 :n 下一个 :N 上一个 :files 查看打开的文件 多窗口编辑 :sp filename (上下分屏) 切割当前窗口开启新的内容 ctrl w 切换光标位置 :vsp filename(左右分屏) ctrl w 切换光标位置

vim环境变量 设置vim环境变量 在用户的家目录下.vimrc(记录用户对vim的设置) :set nu/:set nonu 设置行号 :set hisearch/:set no——- 搜索时是否高亮显示 :set autoindent/:set no—— 是否自动缩进 :set backup/:set no——– 是否自动备份 :set ruler/:set no—– 是否提示光标位置 :syntax on/:syntax off 文档内容是否显示颜色(语法高亮):syn on :syn off :set paste(不要写到vimrc下) 解决复制文本格式问题 用家目录下.viminfo 记录vim中使用过的命令/操作

环境变量 ******$? 执行上一个指令的返回值 $0 当前程序的名称 $n 当前程序的第n个参数,n=1,2,…9 $* 当前程序的所有参数(不包括程序本身) $# 当前程序的参数个数(不包括程序本身) $$ 当前程序的PID $@ 与$*相同,但是使用时加引号,并在引号中返回每个参数 $- 显示shell使用的当前选项,与set命令功能相同

****echo $USER      表示当前用户的登录名称,值与whoami命令的结果一致 echo $UID        表示当前用户的ID,该变量的值与”id-u”命令的结果一致 echo $SHELL     表示当前用户的登录Shell,值与”passwd”文件中的Shell字段一致 ****echo $HOME   表示当前用户的登录目录(宿主目录),值与”psaawd”文件中home字段一致 echo $PWD    表示用户当前所在的目录,值与pwd命令的结果一致 ***echo $PATH    表示当前用户的命令搜索路径,即用户不指定全路径名执行命令,Shell程序将在哪些目             录以及按照何种顺序进行命令的搜索   

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/164520.html原文链接:https://javaforall.cn

0 人点赞