4-2 编辑器之神--vim

vim

vi:Visual editor文本编辑器
文本:ascii,Unicode
vim:VIsual editor iMproved
官网:www.vim.org
帮助网站:Vimhelp.org

vim -d FILE1 FILE2                      #对比两个文件
vim +$ FILE                             #打开文件后,让光标处于第$行的行首
vim +/PATTERN FILE                      #让贯标处于第一个被PATTERN匹配到的行的行首
vim -b FILE                             #二进制方式打开文件
vim -m FILE                             #只读文件打开文件
vim -e FILE                             #直接进入ex模式

注意:

  • 如果文件存在,文件被打开并显示内容
  • 如果改文件不存在,当编辑后第一次存盘是创建它

    vim的三种模式

    命令模式:默认模式,移动贯标,剪切粘贴文本等
    插入模式或编辑模式:修改文本
    扩展命令模式:保存,退出等
    Esc键:退出当前模式
    Esc键,Esc键:总是放回到命令模式

    模式转换

命令模式-->插入模式
i               #insert,在光标所在处输入
I               #在当前光宝所在行的行首输入
a               #append,在光标所在处后面输入
A               #在当前光标所在行的行尾输入
o               #在当前贯标所在行的下方打开一个新行
O               #在当前光标所在行的桑放打开一个新行
插入模式-->命令模式
ESC
命令模式-->扩展命令模式
:
扩展命令模式-->命令模式
ESC,enter

关闭文件
扩展命令模式:
:q              #退出
:q!             #强制退出,丢弃做出的修改
:wq             #保存退出
:x              #保存退出
命令模式:
ZZ              #保存退出
ZQ              #不保存退出

扩展命令模式:
按“:”进入Ex模式
创建一个命令提示符:处于底部的屏幕左侧
常见命令:
w               #写(存)磁盘文件
wq              #写入并退出
x               #写入并退出
q               #退出
q!              #不存盘退出,丢弃修改内容
r FILENAME      #读文件内容到当前文件中
w FILENAME      #将当前文件内容写入另一个文件
!COMMAND        #执行命令
r!COMMAND       #读入命令的输出

命令模式光标跳转:
字符间跳转:
h               #向左一格
l               #向右一格
j               #向下一行
k               #向上一行
@COMMAND        #跳转由@指定的个数的字符
单词间跳转:
w               #下一个单词词首
e               #当前或下一单词的词尾
b               #当前或前一个单词的词首
@COMMAND        #由@指定一个条状的行数
当前页跳转:
H               #跳转至页首
M               #跳转至页中间行
L               #跳转至页底
zt              #将光标所在当前行一道屏幕顶端
zz              #将光标所在当前行一道屏幕中间
zb              #将光标所在当前行一道屏幕底端
行首行尾跳转:
^               #跳转至行首的第一个空白字符
0               #跳转至行首
$               #跳转至行尾
行间移动:
@G              #跳转至第@行
:@              #跳转至第@行
G               #跳转至最后一行
1G,gg           #跳转至第一行
句和段间移动:
(               #上一句
)               #下一句
{               #上一段
}               #下一段

命令模式翻屏操作:
Ctrl+f          #向文件尾部翻一屏
Ctrl+b          #向文件首部翻一屏
Ctrl+d          #向文件尾部翻半屏
Ctrl+u          #向文件首部翻半屏

命令模式操作(将删除或复制结合跳转实现快捷功能):
删除命令:
d               #删除命令,可结合贯标跳转字符,实现范围删除
d$,D            #删除到行尾
d^              #删除到非空行首
d0              #删除到行首
dw              #删除到下一个单词词首
de              #删除到下一个单词词尾
db              #删除到当前或前一个单词词首
dd              #删除所在的行
@dd             #从当前行开始,删除@行
复制命令(y,yank):
y               #复制,行为相似于d命令
y$              #复制到行尾
y0              #复制到行首
y^              #复制到非空行首
ye              #复制到下一个单词词尾
yw              #复制到下一个单词词首
yb              #复制到当前或前一个单词词首
yy              #复制当前行
@yy             #从当前行开始,复制@行
Y               #复制整行
粘贴命令(p,paste):
p               #缓冲区存的如果为正航,则粘贴当前贯标所在的行下方;否则则粘贴至当前贯标所在处的后面
P               #缓冲区存的如果为整行,则粘贴当前贯标所在行的上方;否则则粘贴在当前光标所在处的前面
改变命令(c,change):
c$
c^
c0
cb
ce
cw
cc              #删除当前行并输入新内容,相当于S
@cc             #从当前行开始删除@行,并且还成插入模式
C               #删除当前贯标到行尾,并切换成插入模式
查找:
/PATTERN        #从单签光标所在处向文件尾部查找
?PATTERN        #从当前光标所在处向文件首部查找
n               #下一个,与命令方向相同
N               #下一个,与命令方向相反
撤销更改:
u               #撤销最近的更改
@u              #撤销之前的@次更改
U               #撤销光标落在这行后所有慈航的更改
Ctrl+r          #重做最后的“撤销”更改
.               #重复前一个操作
@.              #重复前一个操作@次
常见命令:
100iCHAR[ESC]   #粘贴CHAR100次
<start position><command><end position>         #先指定其实位置,输入命令,在指定结束位置
yi(             #光标在()之间,则复制()之间的内容
vi[             #光标在[]之间,则选中[]之间的内容
dtx             #删除字符知道遇见光标后的第一个x字符
ytx             #复制字符知道遇见光标后的第一个x字符
di"             #光标在""之间,则删除“”之前的内容

vim的寄存器

  • vim由26个命名寄存器和1个无命名寄存器,常存放不同的剪贴板内容,可以不同会还间共享
  • 寄存器名称a,b,...,z格式:"寄存器 放在数字和命令之间,例如:
    • 3"tyy表示复制3行到t寄存器中
    • "tp表示将t寄存器内容粘贴
  • 未指定,将使用无命名寄存器
  • 有10个数字寄存器,用0,1,...,9表示,0存放最近复制的内容,1存放最近删除内容。当新的文本变更和删除时,1庄村到2,2转存到3,以此类推,数字寄存器不能再不同绘画间共享

    vim标记和宏(macro)

qa              #录制宏a,a为宏名称
q               #停止录制宏
@a              #执行宏a
@@              #重新执行上次执行的宏
ma              #将当前位置标记为a,26个字母均可做标记,mb/mc等等
'a              #跳转到a标记的位置,使用的文档内标记方法,文档中跳跃编辑时很有用

扩展命令模式

地址定界

;start_pos,end_pos
@               #具体第@行,例如2表示第2行
@,@             #从左侧@表示的其实行,加上右侧@表示的行数   示例:2,+3 表示2到5行
.               #当前行
$               #最后一行
.,$-1           #当前行到倒数第二行
%               #全文,相当于1,$
/pattern/       #匹配pattern的行
/pat1/,/pat2/   #从第一次被pat1模式匹配到的澳航开始,一直到第一次配pat2匹配到的行结束   #,/pat/  /pat/,$
使用方式:后跟一个编辑命令
d
y
w file:将范围内的行另存至指定文件中
r file:再指定位置插入指定文件中的所有内容

查找并替换

在扩展命令模式下完成查找替换操作

格式:s/要查找的内容/替换为的内容/修饰符
要查找的内容:可使用模式
替换为的内容:不能使用模式,但可以使用\1,\2,等后巷引用符号;还可以使用"&"引用前面查找时查找到的整个内容

修饰符:

i               #忽略大小写
g               #全局替换,默认情况下,每一行至替换第一次出现
gc              #全局替换,每次体寒奇拿询问

查找替换中的分隔符/可替换为其他字符

[email protected]/[email protected]/[email protected]
s#/boot#/#i

编辑二进制文件

以二进制方式打开文件:

vim -b binaryfile

扩展命令模式下,利用xxd命令转换为刻度的十六进制

:%!xxd

插入模式下,编辑二进制文件:
扩展命令模式下,利用xxd命令转换回二进制

:%!xxd -r

保存退出

可视化模式

允许选择的文本快

v               #面向字符
V               #面向行
Ctrl+v          #面向块
可视化可用于与移动键结合使用
w)}             #和跳跃键一起用
突出显示的文字可悲删除,复制,变更,过滤,搜索,替换等

使用多个创库

多文件分割:

vim -o|-O FILE1 FILE2
-o              #水平分割
-O              #垂直分割(vim only)
Ctrl+w,方向键   #在窗口间切换

单文件窗口分割:

Ctrl+w,s        #split,水平分割
Ctrl+w,v        #vertical,垂直分割
Ctrl+w,q        #取消相邻窗口
Ctrl+w,o        #取消全补窗口
:wqall          #全部保存退出

定制vim的工作特性

配置文件:永久有效

全局:/etc/vimrc
个人:~/,vimrc

扩展命令模式:当前vim进程有效

  1. 行号
    显示:setnumber,简写set nu
    取消显示:set nonumber,简写:set nonu
  2. 忽略字符的大小写
    启动:set ignorecase,简写set ic
    不忽略:set noic
  3. 自动缩进
    启动:set autoindent,简写set ai
    禁用:set noai
  4. 复制保留格式
    启用:set paste
    禁用:set nopaste
  5. 显示Tab和换行符^I和$显示
    启动:set list
    禁用:set nolist
  6. 高亮搜索
    启用:set hlsearch
    禁用:set nohlsearch
  7. 语法高亮
    启用:syntax on
    禁用:syntax off
  8. 文件格式
    启用windows格式:set fileformat=dos
    启用unix格式:set fileformat=unix
    简写:set ff=dos|unix
  9. 设置文本宽度
    set textwidth=65(vim only)
    set wrapmargin=15
  10. 设置光标所在行的标识线
    启用:set cursorline,简写:set cul
    禁用:set nocursorline

    了解更多

#set帮助
:help option-list
:set
:set all
#vi/vim内置帮助
:help
:help topic
Use:q to exit help
#vim练习程序
vimtutor

原文地址:https://www.cnblogs.com/kjalbert/p/11594428.html

时间: 2024-11-10 08:08:54

4-2 编辑器之神--vim的相关文章

Ubuntu学习小结(二)PostgreSQL的使用,进程的查看关闭,编辑器之神Vim入门

距离上次发布文章已经过去了很久.在过去的半年中,虽然写的代码不多,但是在接触了计算机一些其他的知识,包括数据库.网络之后,感觉能够融会贯通,写代码水平又有了一定的提高.接下来,将会发表几篇文章,简单介绍一下我所了解的一点技术. 1.PostgreSQL的安装和使用 PostgreSQL是一个非常好用的开源免费数据库,功能强大,尤其对于GIS从业人员而言,其与PostGIS搭配可以有极强的空间数据库功能. 其官方网站:https://www.postgresql.org/ 官方帮助:https:/

编辑器之神-VIM

[基础拾遗]编辑器之神-VIM 提交 我的留言 加载中 已留言 在这天地间,流传这两大神器的故事:据说Emacs是神的编辑器,而Vim是编辑器之神.正所谓,工欲善其事,必先利其器.今天就和大家分享一下关于编辑器之神Vim的传说. 一.Vim的历史 1.下图是关于几款主流编辑器的学习曲线:(注:图片来自互联网) 2.VIM - Vi IMproved 3.上图中vi即是vim的前身 VI:Visual Interface 4.VIM和VI是文本编辑器 何为文本文件? 文本文件一般指只有字符原生编码

Linux下的 编辑器之神——vim编辑器

编辑器之神--vim编辑器一.vi介绍Vi编辑器是所有Unix及Linux系统下标准的编辑器,类似于windows系统下的notepad(记事本)编辑器,由于在Unix及Linux系统的任何版本,Vi编辑器是完全相同的,因此可以在其他任何介绍vi的地方都能进一步了解它,Vi也是Linux中最基本的文本编辑器,学会它后,我们将在Linux的世界里畅行无阻,尤其是在终端中. 关于vim:vi和vim都是Linux中的编辑器,不同的是,vim比较高级,可以视为vi的升级版本.vi使用于文本编辑,但是v

新手入门之——Ubuntu上的编辑器之神Vi / Vim

Ubuntu上的编辑器有gedit.vi.sublime等.gedit一般在没有其他编辑器时临时使用,大部分情况下,vi和sublime使用的比较多,Linux系统内置了vi和sublime,其中,sublime是可视化的编辑器可以通过鼠标操作可以实现各种功能,学习起来比较容易,这里就不作赘述.今天主讲的是非可视化的编辑器vi,提到vi编辑器既让人爱又让人恨.学会vi编辑器的程序猿爱死了vi,新手恨死了vi.接下来就系统的讲解下VI编辑器,供大家参考查询. vi又叫vim,这两个是一样的. vi

编译器之神vim大改造

相信码农都听过两大神器,一是emacs,一是vim.大家都知道e党和v党老是吵架.其实,这并没有什么好吵的,只是每个人都有自己适用的东西.作者接触了vim,也接触过emacs.对于作者,觉得vim更加适用. 下面,给大家介绍一下作者自己的vim配置.github地址:https://github.com/tenghui0425/VimScripts 首先给大家看一下大图.这个是vimrc配置的图目录情况. 配置主要是以下几块. 基本配置,放在.vimrc下,比如一下全局的map.最后加载一个基本

Vim-编辑器之神

几点声明: 作者只是一位小小的 \(OIer\) ,并不会什么过于神仙的东西,我这篇文章只是帮助人入门的而已. 若有人在 OI-Wiki上见过了原文章,原作者是我 \(......\) ,真不是抄 \(......\) 历史与争端 Vim 的前身是 vi,一个简洁但是略有不足的编辑器,但是从 vi 开始,编辑器的模式区分和唯快不破的思想就已经体现的很到位了.Vim 即是 vi improved,是在 vi 原本所有的方式上进行的进一步提升,但是并不会改变 vi 的其他本质,只是增加了更多适应如今

Linux 开发环境搭建与使用——Linux 常用编辑器之vim

概述 vi 编辑器是 Linux 系统中最常用的文本编辑器,vi 在Linux界有编辑器之神的美誉几乎所有的 Linux 发行版中都包含 vi 程序. vi 工作在字符模式下,不需要图形界面,非常适合远程及嵌入式工作,是效率很高的文本编辑器,尽管在 Linux 上也有很多图形界面的编辑器可用,但vi的功能是那些图形编辑器所无法比拟的. 那 vim 又是什么呢? vim 是 vi 的升级版,它不仅兼容 vi 的所有指令,而且还有一些新的特性,例如 vim 可以撤消无限次.支持关键词自动完成.可以用

linux 强大的编辑器之vi

vi编辑器是一个处理ASCII数据的文本工具.大多数linux发行版都已经默认安装了vi编辑器.vi是visual interface的缩写vim是 visual interface improved即增强版的vi,vim默认支持代码命令加亮,这样使得文本更易看懂.vi有两种配置文件一种是全局配置文件 /etc/vimrc,全局配置文件的设置对所有用户都生效.另一种是用户配置文件,这个配置文件需要自己手动去创建,如 touch ~/.vimrc,创建在用户家目录,并把它创建为隐藏文件,在这里的设

一段奇妙的vim编辑器之旅

一.背景 对于Linux服务器上的操作,我们往往少不了使用vim,而有时候我对vim的使用并没有那么的熟练和深入,这周就深入的学习了vim的使用,包括入门和进阶,先分享给你们,也方便自己以后复习查询. 二.vim入门 1.启动vim,使用命令:vim fileName 如果该文件存在,则打开并显示内容:如果文件不存在,则在第一次保存的时候创建新文件. 2.vim的三种模式 命令模式:可以移动光标.删除.复制.搜索. 插入模式:通过输入"a"."i"."o&