几句话

很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好。我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用vim都要再去回温下基本操作,很是难受,所以就趁这个机会把基本操作都记录下来,一来可以当做自己的笔记,二来希望可以帮到同样和我一样用过vim但却忘得差不多的人。另外,这里也记录一下自己的vim配置,这个配置可能并没有其他网友分享的那么强大,但至少足够简单,能够提高自己编码的效率。

vim常用命令

首先先简单梳理一下vim的工作模式。vim有三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。

简单来讲就是,当我们刚打开vim,或者使用vim打开了一个文件,终端上显示着文件的内容,这时候就是命令模式(如上图就是刚打开一个文件的情况,此时光标位于第一行行首处),在现在的情况下,键盘输入小写的i a o 或者大写I A O中的其中一个,就可以进入输入模式,各个按键的具体意义如下:

按键具体意义

i

从目前光标所在处输入

I

在目前所在行的第一个非空格符处开始输入

a

从目前光标所在的下一个字符处开始输入

A

从光标所在行的最后一个字符处开始输入

o

在目前光标所在的下一行处输入新的一行

O

在目前光标所在的上一行处输入新的一行

r

继续输入一个字符以取代光标所在处后面单个字符,而后返回命令模式

R

新输入的字符会一直取代光标所在处后面的字符

当我们使用上述按键进入输入模式,配合方向键编辑好文件内容后,使用ESC键可退出输入模式,回到命令模式,vim的大部分命令都是在命令模式下使用。

命令模式下的按键十分丰富,主要的操作为光标移动、复制粘贴、搜索替换等

光标移动的基本按键如下:

按键具体意义

h 或 向左箭头键(←)

光标向左移动一个字符

j 或 向下箭头键(↓)

光标向下移动一行

k 或 向上箭头键(↑)

光标向上移动一行

l 或 向右箭头键(→)

光标向右移动一个字符

在上面的基础上,如果你想光标的位置一次移动多行或者在同一行上移动多个字符,可以有以下几种方法:

直接输入数字并在其后输入相应的方向,例如输入20j或20↓表示光标向下移动20行,输入20l或20→表示光标向右移动20个字符。

输入数字后加空格可以使光标向右移动n个字符,例如20[space]即和上面第一条的20l或20→达到相同的效果,为了简单一点,我个人认为如果不是vim深度用户的话,我们可以直接放弃记忆这个命令。同样性质的命令还有20[enter],表示光标向下移动20行

ctrl+f/b/d/u可以用来上下翻页,但是对大部分人来说没有必要去记这个繁琐的命令,我个人更加推荐使用键盘上的Page Up和Page Down来上下翻页

0和$可以用来移动光标到行首或行尾,同样,我还是认为没必要去记忆这个命令,而是直接使用Home和End来达到同样的效果

另外,还有一些很方便的操作值得单独拎出来进一下:

按键(区分大小写)具体意义

H(High)

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

M(Middle)

光标移动到这个屏幕的中央那一行的第一个字符

L(Low)

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

G

移动到这个文件的最后一行(常用)

gg

移动到这个文件的第一行(常用)

nG

移动到这个文件的第n行

复制粘贴的操作比较繁杂,但也并不是没有规律可循,具体如下:

按键具体意义

x或[delete]

删除光标后面的单个字符,

X或[backspace]

删除光标前面的单个字符

nx

连续向后删除 n 个字符。同理,可以有大写的nX

dd

删除光标所在的一整行

ndd

删除光标向下的n行(包括光标那一行)

d+某个位置

删除光标处到那个位置的所有内容。例如d1G删除从光标到第一行的所有内容,dG删除从光标到最后一行的所有内容,d$或d[End]删除从光标处到行尾的所有字符。以此类推

yy

复制光标所在的那一行(常用)

nyy

复制光标向下的n行(包括光标那一行)

y+某个位置

复制选取的范围,选取范围如前面d+某个位置所示

p

将已复制的内容在下一行粘贴

P

将已复制的内容在上一行粘贴

J

将光标所在行与下一行的数据结合成同一行,即在删除该行和下一行之间的换行符。

u

复原前一个动作(常用)

[ctrl]+r

重做上一个动作(常用)

.(小数点)

重复前一个动作(常用)

搜索替换部分为了简洁一点,就只提一下搜索,替换部分就不涉及了

按键具体意义

/[要搜索的字符]

向光标之下寻找一个匹配的字符串。如/int会搜索匹配int

?[要搜索的字符]

向光标之上寻找一个匹配的字符串。

在上面搜索字符串的基础上按回车键,就可使光标跑到搜索到的字符串处,这时输入n光标就会跳到下一个或上一个匹配的字符串处,具体是上还是下取决于刚才执行的是/string还是?string,而输入大写的N则是与小写n相反的方向。(注意,当执行n到达文件底部时就会循环跳到顶部,反之亦然)

好了,现在我们已经能够编辑文件内容了,那怎样保存文件呢?一般情况下,当需要保存或退出文件时,我们习惯性按一下ESC键以进入命令模式(当然如果已经在命令模式下也习惯性按一下吧),这时输入:加相应的指令就能对文件执行相应的操作,这里需要注意一点的就是,如果你对该文件没有相应的权限,那么执行相关操作将会被拒绝,例如我在Ubuntu下想要修改我没有权限的文件,vim会提示权限拒绝,我需要执行sudo vim filename以root权限进入vim才能修改文件。

按键具体意义

:w

保存编辑的内容

:w!

若文件属性为只读,强制保存编辑的内容,需要相应的权限

:q

退出vim

:q!

强制离开不保存编辑过的内容

:wq

保存后退出vim

:wq!

强制保存后退出vim

ZZ

若文件没有改动,则不储存离开,若文件已经被改动过,则储存后离开!

:w filename

另存为filename

:! command

暂时离开vim到命令行模式下执行 command 的显示结果!例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!

配置方案

这个只是一个简单的vim配置,留下了一些我认为必要的功能,没有那么多花俏的功能,也不像网上一些文章分享的配置成酷炫的IDE,我个人一贯的原则就是简洁明了,使用方便即可。

使用方法:保存成名为.vimrc的文件放在~目录下,即用户个人目录下即可。

"********************************************************

" 一般性配置 *

"********************************************************

"关闭vim一致性原则,避免以前版本的一些bug和局限

set nocompatible

"显示行号

set number

"设置在编辑过程中右下角显示光标的行列信息

set ruler

"在状态栏显示正在输入的命令

set showcmd

"设置历史记录条数

set history=1000

"设置取消备份 禁止临时文件的生成

set nobackup

set noswapfile

"设置匹配模式,类似当输入一个左括号时会匹配相应的那个右括号

set showmatch

"设置C/C++方式自动对齐

set autoindent

set cindent

"开启语法高亮功能

syntax enable

syntax on

"指定配色方案为256色

set t_Co=256

"设置搜索时忽略大小写

set ignorecase

"实时显示搜索结果

set incsearch

"配置backspace的工作方式

set backspace=indent,eol,start

"设置在vim中可以使用鼠标

set mouse=a

"设置tab宽度

set tabstop=4

"设置自动对齐空格数

set shiftwidth=4

"设置退格键时可以删除4个空格

set smarttab

set softtabstop=4

"将tab键自动转换为空格

set expandtab

"设置编码方式

set encoding=utf-8

"自动判断编码时 依次尝试以下编码

set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1

"检测文件类型

filetype on

"针对不同的文件采取不同的缩进方式

filetype indent on

"启动智能补全

filetype plugin indent on

"括号自动补全

inoremap ( ()i

inoremap [ []i

inoremap { {}i

inoremap < <>i

linux 自定义vi dd,Vim常用命令及配置方案相关推荐

  1. Vim常用命令和配置

    [TOC] Vim常用命令和配置 Mac 终端键入 vimtutor 即可进入Vim入门教程 问题收集 vim代码粘贴,格式混乱到逆天.这是因为vim设置了自动缩进造成的问题, 所以如果你需要在ins ...

  2. Linux下实用工具Vim常用命令总结

    vi有输入和命令两种工作模式.输入模式用于输入.命令模式则是用来运行一些编排文件.存档以及离开vi等操作命令.当执行vi后,首先进入命令模式,此时输入的任何字符都被视为命令. vi默认是命令模式,在命 ...

  3. Linux Vim文本编辑器-Vim常用命令

    距离上次Linux的学习,今天又是一个崭新的起点,我们用五天的时间学了一些Linux一些常用的操作命令,但掌握这些还是远远不够的,这个世界就是这样,将生于此,既是幸运也是不幸,只有不断地学习才能有自己 ...

  4. linux vim命令pdf,Linux中vi、vim命令大全

    Linux中vi.vim命令大全 2019-11-21 16:55Linux命令大全 Linux vi 是 unix/linux 下极为普遍的一种文本编辑器. vi 有各种变种, 在不同的机器上有不同 ...

  5. 详解Linux系统Vi 和 Vim中正常模式、编辑模式、命令模式相互转化,以及vim命令使用

    详解Linux系统Vi 和 Vim中正常模式.编辑模式.命令模式相互转化 vi 和 vim 的基本介绍 vi 和 vim 的三种常见模式 正常模式 正常模式常用命令 插入模式/编辑模式 命令行模式 v ...

  6. vi/vim常用命令 zz

    http://blog.sina.com.cn/s/blog_492101c70100o10c.html 最近整理的vi/vim常用命令,有需要的童鞋拿去用吧 (本来是在excel中的,但是没有地方上 ...

  7. Linux—vim常用命令

    vim常用命令: 1. 键入i进入编辑模式 2. esc进入命令模式 3. a,进入编辑模式 3. b,光标移动到单词前,end,光标移动到行尾 4. home光标移动到行首 5. cc,删除当前行, ...

  8. Linux下vi和vim模式相互切换

    vi和vim 常用的三种模式: 1,正常模式 在这种模式下,可以使用[上下左右]按键来移动光标,也可使用[删除字符][删除整行]来处理档案内容,也可使用[复制.粘贴]来处理文件数据. 2,插入模式/编 ...

  9. Linux系统vi和vim的介绍

                                   Linux系统vi和vim的使用   1.VI模式 (1).命令行模式 (command mode/一般模式) 任何时候,不管用户处于何种 ...

最新文章

  1. ajax提交不能进入后台_Ajax跨域问题
  2. appendChild append insertBefore prepend
  3. java在SAE中使用的相关问题总结
  4. 【CyberSecurityLearning 附】DNS复习演示所有实验
  5. 基于jsp的教师科研工作量_基于jsp+mysql的JSP教师科研信息管理系统
  6. Linux的Nginx五:进程|过程
  7. LeetCode 26. 删除排序数组中的重复项
  8. android ——Toolbar
  9. 酒店管理系统源码,前台+后台
  10. linux的管理权限命令,Linux权限管理命令
  11. 计算机自我检测方法,电脑问题的自我检测方法有哪些?
  12. 人体3D重建-ICON论文解读
  13. Codeforces Round #459 (Div. 1) B. MADMAX
  14. php表格显示成绩,学生成绩表格展示
  15. wnmp php7,wnmp环境php7与其他php版本共存
  16. 如何利用巨象指纹浏览器在twitter上找到精准客户
  17. CSS入门学习笔记+案例(1)
  18. 结合知识蒸馏的增量学习方法总结
  19. 【Java网络编程】:Netty实现OIO和NIO
  20. iPhone4 SIM失败?无效SIM?有效解决

热门文章

  1. 下一代大数据处理引擎,阿里云实时计算独享模式重磅发布
  2. 蚂蚁链发布新一代网络平台「FAIR」 区块链进入隐私计算原生时代
  3. Gartner:2020年全球IaaS公有云服务市场增长40.7%
  4. IDC:移动云进入云运营服务市场前五!
  5. IT 拉呱室 | 论我遇到的最刺激的bug【长期福利站】
  6. 推动边缘计算的七项核心技术
  7. Cloud一分钟 | 苹果更新“隐私页面”;中国联通大数据正式升级,进入数智新阶段...
  8. 用python做tkinter_Python下用Tkinter进行GUI编程
  9. 珠海小学计算机比赛,欢聚一堂 共叙佳话 —— 参加珠海市中小学信息技术工作年会纪要...
  10. nacos 开启权限验证后 报错状态 403