简单介绍vim文本编辑器

一、文本编辑器VIM:
vim和vi的区别
vim介绍:
vim是unix操作系统中的文本编辑器
vim=vi+IMproved:加入了多级撤销、语法高亮和自动补全、
支持多种插件、可通过网络协议(HTTP/SSH)编辑文件、支持多文件编辑、可编辑压缩格式的文件

vimrc配置
rc=run+command:每一行作为一个命令进行执行
分系统级别的vimrc和用户级别的vimrc

快捷键
eg:
1、终端输入vim test
表示已vim文本编辑器打开test.txt,这时为普通模式
2、进入之后输入

进入编辑模式
3、当输入
3.1
:h vimrc
表示帮助显示vimrc的信息,这时可以查看什么时vimrc的定义,如果要退出帮助界面回到编辑界面,输入
3.2
:q
直接enter键即可
3.3
:q!
表示不保存当前修改,直接退出
3.4
/××××
表示高亮显示内容为××××的内容
3.5
××××?
表示查找内容为××××的位置
3.6
点击
i
表示进入插入模式,这时开始可以修改文件
3.7
点击Esc
表示退出编辑模式

4、若打开之后输入
:version
可得到vim的版本信息,同样以3的退出方式退出vim编辑器
5、可在终端输入
vim ~/.vimrc
打开vimrc文件
6、vimrc中的注释方式为单引号
"
开始

7、终端可输入clear清除历史命令

vim四种不同模式
普通模式:打开文件之后的默认模式,可以进行移动查找删除修改等操作
可视模式:可对一整区操作
打开文件之后,输入
v
即可进入可视模式,这个时候移动光标即可选中一整块区域,如果想删除,直接点击
d
即可删除这块内容
插入模式:可添加文本
打开文件之后,输入
i
即可进入插入模式,这个时候就可以在文件中添加内容
命令模式:和普通模式类似
即先输入
:
再输入其他命令
如上面的:version可查看版本

在学习下面的操作之前,可vim一个文件,再输入
:h operator
查看支持的操作指令

二、移动、跳转与缩进

光标的移动
    h左移;l右移;j下移;k上移;$移动到行尾;0(包含缩进)或shift+6(不包括缩进)移动到行首
单词和字符串移动
    w/W正向移动到下一个单词开头
    b/B反向移动
    e/E正向移动下一单词结尾
    ge反向
跳转
    ctrl+f/F下一页
    ctrl+b/B上一页
    ctrl+d/u向下/上翻半页
    G跳转至文件的最后一行
    {g}+ctrl+g/G查看文件信息/{g}更加详细
    gg/G跳转到指定行
缩进
    >>表示当前行右缩进
    <<表示当前行左缩进
    :m,n>表示进入命令模式,m到n行缩进
    :m>n等同于:m,m+n-1表示命令模式m行开始共n行缩进一次

三、剪切、复制、粘帖、撤销和恢复重做(vim当中对应的单词为delete、yank、put、undo和redo(ctrl+r))

首先
:reg
进入寄存器
剪切:
dd表示删除整行
复制:
yy表示复制整行
yw表示复制当前光标单词
y2w表示复制正向两个单词(可以为n个)
p/P表示粘帖到光标后/光标前

四、调换字符:
vim打开文件之后,查找某个字符可直接点击
f+需要查找的字符(eg:空格或其他字符)+x
就会跳到最近查找字符的位置,并且删除该字符,这时再按下p即可进行粘贴

五、组合删除:
格式为:[count]operation([count]{motion})

 eg:2d3w表示正向删除三个单词;5dw表示正向移动5次删除单词
    x/X表示删除光标下/前单个字符
    dw表示删除一个单词
    d{hljk}表示删除上下左右一个操作前的字符
    d$表示删除光标到行尾的字符
    d^或d0表示删除光标到行首的字符

六、修改、查找和替换

  插入:
        shift+i/A表示插入模式并移动到行首/尾
        a/i表示光标后/前插入
        [n]+O/o:表示行前/后插入n次
        [n]+i:表示插入模式重复n次,即写入要插入的内容之后,按下Esc,会自动填充n遍到文本当中

转换:
        ~表示单个大小写的转换
        g~w表示单词大小写转换
        g~$/g~~表示整行大小写转换
        gU/uw表示单词转换为大/小写

查找:
        F/f+字符:表示反向/正向查找单个字符
        t+字符:表示查找字符前一个字符
        dt+字符:删除光标到查找字符间的字符
        /+字符:命令行查找,再跳过n进行next的切换

替换(substitute):
        [range]s[ubstitute]/{pattern}/{string}/[flags]
        s/going/rolling/g:表示当前行所有going替换为rolling
        %s/going/rolling/g:表示%匹配所有范围,所有范围都进行替换

shift+r/R:表示进入替换模式,可以直接替换
r:单个字符的替换,可直接修改
cw:修改单个单词,就会删除当前单词,再进行替换(change word)
c$:修改光标之后行内容,就会删除从当前位置到行尾的内容

七、vim寄存器/赠查删改等常规操作/vim组合规律
寄存器:
有多种,且每种功能也不一样

无名寄存器:默认寄存器
数字寄存器:0用于复制专用寄存器,1-9对应不同的寄存器
有名寄存器:26个英文字母
黑洞寄存器:只想删除,想当于删除

八、缓冲区与多文件编辑/多窗口与标签分组/文本对象和宏/visual模式
缓冲区和多文件编辑

缓冲区:buffer是内存中的缓冲区域,用于临时存放vim打开过的文件

    缓冲区列表:
    命令查看缓冲区列表
        :files
        :buffers
        :ls
    缓冲区列表指示状态:
        a表示激活缓冲区,缓冲区被加载且显示
        h表示隐藏缓冲区,缓冲区被加载但不显示
        %表示当前缓冲区
        #表示交换缓冲区
        =表示只读缓冲区
        +表示已经更改缓冲区
        -表示不可更改缓冲区
    缓冲区列表的操作:
        :bp表示上一个缓冲区(previous)
        :bn表示下一个缓冲区(next)
        :bf表示第一个缓冲区(first)
        :bl表示最后一个缓冲区(last)
        :buffer Nmuber或File_name表示指定缓冲区
        :ball表示编辑所有缓冲区
        ctrl+^/b#表示切换到前一个buffer
        :bd + ×××.txt表示删除名字为×××的缓冲区(delete)
        :%bd表示删除所有缓冲区

多窗口操作(分屏)及标签分组

标签包括多个窗口,相当于容纳一系列窗口的容器,每个窗口包括一个buffer

    分屏操作:(w可表示为window)
    eg:vim -o4 buf-*表示垂直方向打开四个已buf开头的文件
        vim -O/on表示水平/垂直分屏
        ctrl+w c/q表示关闭当前窗口/最后窗口时退(close,quit)
        ctrl+w s表示上下分割当前打开的文件(split)
        :sp filename表示上下分割,并打开一个新的文件
        ctrl+w v表示左右分割当前打开的文件(vsp)
        :vsp filename表示左右分屏幕,并打开一个新的文件
    移动分屏和尺寸变换:
        ctrl+w K表示向上移动
        ctrl+w J表示向下移动
        ctrl+w H表示向左移动
        ctrl+w L表示向右移动
        ctrl+w +表示增加高度
        ctrl+w -表示减少高度
        ctrl+w =表示所有屏高度一致
    标签操作:
        :tabnew表示新建标签
        :tabfind+×××.txt表示查找并在新标签中打开文件
        :tabs显示已打开标签页的列表
        :tabclose表示关闭当前页的标签
        :tabonly表示仅保留当前标签页打开
        :tabn/p/first/last表示移动到下/上/第一/最后一个标签页(next/previous/first/last)
        :tabm表示將当前页放置到指定位置
    标签操作和命令键:
        gt/T表示移动到下/上一个标签
        {i}gt表示移动到i位置的标签
        :tabe编辑标签中的某个文件
        tabm 0/tabm表示移动当前tab到第一个/最后一个(m表示move)
        tabm{i}表示移动当前tab到i+1位置

文件对象和宏:
文本对象是在可视化模式下的表现,一般包括

        w:word
        s:sentence
        p:paragrapg
        块对象

可视化模式下的指令

viw表示选中单词
        vis表示选中句子
        vip表示选中段落
        vi(表示选中圆括号中的内容
        vi[表示选中中括号中的内容
        vit表示选中标签中的内容
        同时可以带上数字,进行组合操作
        eg:v3aw表示选中三个单词,包括中间的两个间隔空格
            v3iw表示选中三个单词,指两个单词和一个空格,总共三个

宏的简单操作(类似于函数,將你的操作进行存储,再进行批量操作):

qa开始录制宏存到寄存器a中
        qA追加宏在a寄存器中追加
        n@a执行n遍a寄存器中的操作(@表示调用寄存器,执行完毕之后直接点击q即可退出寄存器)
        @@再执行一遍上一次操作
        :let @a= '编辑宏a寄存器
        :n,mnormal @a表示n到m行执行寄存器a宏操作

visual模式
在可视化模式下,可以对一个文本块进行整体操作
三种子模式:

            v表示激活面向字符的可视模式
            V/shift+v表示激活面向行的可视模式
            Ctrl+v表示激活面向列块的可视模式

可视化操作:

gv表示重新选择上一次的选中区域
o表示切换选取边界,即在选中区域的两端进行切换

具体实践:

eg:进行整行的替换
先V选中整行,再r+&即將整行变成&

你可能感兴趣的:(ubuntu)