Linux系统初探2:Vim文本编辑器

本文介绍了Vim这款强大的文本编辑器,包括其基础用法,如新建/打开文件、编辑模式的进入及保存退出。详细阐述了Vim的正常模式、编辑模式和行底模式,以及在这些模式下的常用操作,如光标移动、删除、复制、替换和撤销。此外,文章还提供了Vim的配置方法,教读者如何定制个人的.vimrc文件以优化编辑体验。
摘要由CSDN通过智能技术生成

一、简介

        可以直接在终端下采用纯键盘操作的一款文本编辑器,号称编辑器之神,可以二次升级、扩展。

二、基础用法

        1.新建/打开:输入vim file.c,文件存在则打开,否则新建并打开

        2.输入i:进入编辑模式,编写代码

        3.保存退出:Esc键,输入大写的ZZ进入保存并退出

三、 Vim的三大模式

        1.正常模式:(打开文件时的默认模式)

            一般用于阅读文件,或者用于快捷键对文本快速修改

        2.编辑模式:(插入模式)

            一般用于输入内容、编辑文件

        3.行底模式:

            一般用于对vim的临时配置或执行高级操作  set nu出现行号


       模式间切换:

        正常模式 输入i -> 插入模式 按ESC -> 正常模式

        正常模式 输入: -> 行底模式 按ESC -> 正常模式


四、正常模式下的常用操作:

光标移动:

命令说明命令说明
hj
kl
gg光标跳到第一行G光标跳到最后行
n回车光标向下跳n行n-光标向上跳n行
nG光标跳到第n行vim filename +n从第n行进入文件

删除操作:

命令说明命令说明
x快速删一个nx删除n个字符
dw删除一个连续字符串,删除空格de删除一个连续字符串,不删除空格
dd删除整行ndd删除n行
d^从当前光标删除到行首d$从当前光标删除到行尾
dgg从光标处山到第一行dG从光标处删到最后一行

复制代码:

命令说明命令说明
yy复制一行代码nyy复制n行代码
p粘贴到当前光标下方P粘贴到当前光标上方

特殊的

移动代码

删除内容还存储在粘贴板上,使用p可以粘贴出来从而达到移动效果

xp 交换两个字符

替换代码:

命令说明命令说明
r替换光标所在的一个字符cw替换一个连续字符串,进入编辑模式
R进入替换模式(insert键切换替换和插入模式)

撤销操作:

命令说明命令说明
u  撤销上一次操作I光标跳转到行首
Ctrl+r取消上次撤销操作a光标后面进入插入模式
A光标跳到当前行尾o

在当前行的下方插入一行空白行

进入插入模式

O

在当前行的上方插入一行空白行

进入插入模式

插入模式下的常用操作:

命令说明命令说明
Ctrl+p/n自动补全,变量名\函数名\宏
Ctrl+i相当于TAB
Ctrl+j相当于回车
Ctrl+c相当于ESC

行底模式下操作:临时生效,长期生效需改vim配置文件(~/.vimrc)

命令说明命令说明
:w写入:x保存退出
:q退出 修改不保存:X加密
:q!强制退出:set key= 

删除密码取消密码

必须:wq才生效

:wq保存退出:!cmd能够临时在vim中执行cmd系统命令
:/key查找关键值key  n下一个 N上一个:%s/old/new把old关键词替换为new
:set nu显示行号:set nonu取消显示
:>nn行代码向右缩进一次:<nn行代码向左缩进一次

五、如何配置Vim

    1.打开终端输入    vim ~/.vimrc

    2.写完后返回正常模式,ZZ退出

    3.下次打开vim生效


 部分Vim配置

    "设置行号

    set number

    "设置TAB键的宽度

    set tabstop=4

    "自动缩进

    set autoindent

    "设置自动缩进的宽度

    set shiftwidth=4

    "智能缩进

    set smartindent

    "设置不生成临时文件

    set noswapfile

    "设置不备份

    set nobackup

    "设置插入模式下快速返回正常模式

    imap jj <ESC>

    "定义保存并退出函数

    func! SaveExit()

        exec "wq"

    endfunc

    "映射ctrl+z键调用保存并退出函数

    map <C-z> : call SaveExit()<CR>

    imap <C-z> <ESC> : call SaveExit()<CR>

    vmap <C-z> <ESC> : call SaveExit()<CR>

    "定义自动保存并编译执行代码函数

    fun! ComplieCode()

        exec "w"

        if &filetype == "c"

            exec "!gcc % -lm -pthread && ./a.out"

        elseif &filetype == "cpp"

            exec "!g++ -std=c++0x % -lm -pthread && ./a.out"

        endif

    endfunc

    "映射ctrl+x键调用便编译执行函数

    map <C-x> : call ComplieCode()<CR>

    imap <C-x> <ESC> : call ComplieCode()<CR>

    vmap <C-x> <ESC> : call ComplieCode()<CR>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就酱77叭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值