VIM配置文件路径:

/etc/vmrc ===> 系统配置文件路径

~/.vimrc ===> 当前用户配置文件路径

$VIM ===> 与VIM配置文件相关的变量

进入插入模式:

i  === > 从目前光标所在处插入

I  === > 在目前所在列的第一个非空白字符处开始插入

a === > 从目前光标所在的下一个字符处开始插入

A === > 从光标所在列的最后一个字符处开始插入

o === > 在目前光标所在的下一列处插入新的一列

O  === > 为在目前光标所在处的上一列插入新的一列

进入取代模式:

r  === > 取代光标所在的那一个字符一次

R ===> 一直取代光标所在的文字,直到按下 ESC 为止

VIM键盘图:

一、保存退出

w === > 保存文件

w! === > 若文件为只读,强制保存文件

q == => 离开vi

q! == => 不保存强制离开vi

wq == => 保存后离开

wq! == => 强制保存后离开

! [command]== => 暂时离开vi到命令行下执行一个命令后的显示结果

注意:command 是一个linux 指令

write [filepath] == => 另存为指定路径的指定文件

w [filepath] == => 另存为指定路径的指定文件

注意:filepath 是一个文件名(如果不带路径,默认为当前路径)

二、全局参数

set fileencoding ===> 查看当前文件编码格式

set fileencoding=utf-8 ===> 设置当前文件编码格式为utf-8,也可以设置成其他编码格式

set fileformat ===> 查看当前文件的断行格式(dos\windows,unix或macintosh)

set fileformat=unix ===> 将当前文件的断行格式设置为unix格式

三、设置取消高亮

set hlsearch ===> 设置高亮

set nohlsearch ===> 取消高亮

nohlsearch ===> 取消高亮

四、设置取消行号

set number ===> 设置行号

set nonumber ===> 取消设置行号

五、光标、屏幕焦点

h、j、k、l ===> 控制光标的上下左右移动

w ===> 向后移动一个单词,从词头到词头

e === > 向后移动一个单词,从词尾到词尾

b === > 向前移动一个单词,从词头到词头

Ctrl+F ===> 向前滚动一屏

Ctrl+B ===> 向后滚动一屏

Ctrl+D ===> 向前滚动半屏(向下)

Ctrl+U ===> 向后滚动半屏(向上)

Ctrl+E ===> 向下滚动一行,保持当前光标不动

Ctrl+Y ===> 向上滚动一行,保持当前光标不动

当前行滚动:

z+Enter ===> 当前行移动到屏幕顶部并滚动

nz+Enter ===> 滚动指定行到屏幕顶部

z + . === > 当前行移动到屏幕中央并滚动

z + - === > 当前行移动到屏幕底部并滚动

注意:以上的 + 是连接的意思,并不需要键盘输入

当前屏幕操作:

H ===> 移动到当前屏幕首行

nH ===> 移动到当前屏幕首行下的第n行

M ===> 移动到当前屏幕中间行

L ===> 移动到当前屏幕末行

nL ===> 移动到当前屏幕末行上面的第n行

六、跳转

nG ===> 跳转到第n行

gg ===> 跳转到行首

G ===> 跳转到行尾

n<space> ===> 光标向右移动n个字符

n<Enter> ===> 光标向下移动n行

七、缩进

命令行缩进:

[start]   ,   [end]   >   [Enter] ===> 将从 start 行到 end 行的数据缩进一个 TAB

[start]   ,   [end]   <   [Enter] ===> 将从 start 行到 end 行的数据取消缩进

注意:

1.start、end是数字,代表起始和终止行号

2.Enter代表回车,不是指输入该字符,而是指回车执行功能

3.> 和 < 是一个字符,需要靠键盘输入该字符

可视模式缩进:

将光标移动到需要缩进的起始行,进入可视化模式,然后控制键盘上的上下左右选中要缩进的行, 输入 >  或 <  设置或取消缩进

八、撤销、恢复

u ===> 撤销

ctrl + r ===> 恢复撤销

. (小数点) ===> 重复上一个操作

九、复制、移动

yy ===> 复制光标所在行的数据

nyy ===> 复制光标所在的向下n行的所有数据

注意:n为数字

y1G ===> 复制第一行到光标所在行的所有数据

yG ===> 复制光标所在行到最后一行的所有数据

ggyG ===> 全部复制

p(小写) ===> 将已复制的数据粘贴到光标所在的下一行

P(大写) ===> 将已复制的数据粘贴到光标所在的上一行

光标移动到起始行按   y'a   然后光标移动到结束行按   ma   最后按  [p | P] 粘贴

[start]   ,   [end]   copy   [destination] ===> 复制从start行到end行的内容到第destination

[start]   ,   [end]   co   [destination] ===> 复制从start行到end行的内容到第destination

[start]   ,   [end]   move   [destination] ===> 移动从start行到end行的内容到第destination

注意:

1.以上的 [start]、[end]、[destination] 均为数字

2.移动操作还可以结合删除(如dd等)指令和粘贴(p、P)指令实现

十、可视化模式

v ===> 字符可视化模式

V ===> 行可视化模式

ctrl + v ===> 块可视化模式

注意:进入可视化模式后,可以通过上下左右箭头控制被选范围

gg ===> 选中从文件开始到当前光标所在位置的数据

G ===> 选中从当前光标开始到文件结尾的数据

g? ===> 使用 rot 13 算法加密、解密选中的数据

u ===> 将选中的数据全部小写

U ===> 将选中的数据全部大写

J ===> 对选中的行进行合并,中间以空格隔开

gJ ===> 对选中的行进行合并,中间没有间隔符

sort ===> 对选中的数据按行进行排序

w ===> 高亮显示(选中)到下一个单词的开头

$ ===> 包含该行的其余部分

d ===> 剪贴选中数据(不包含光标所在字符)

D ===> 剪贴选中数据(包含光标所在字符)

x ===> 删除选中数据(不包含光标所在字符)

X ===> 删除选中数据(包含光标所在字符)

y ===> 复制选中数据(不包含光标所在字符)

Y ===> 复制选中数据(包含光标所在字符)

p ===> 粘贴复制内容到当前字符前

P ===> 粘贴复制内容到当前字符后

u ===> 撤销更改

> ===> 缩进一个TAB

< ===> 取消缩进

十一、插入

r  [filepath] ===> 在当前光标所在行的下一行插入 filepath 文件中的内容

注意:

filepath为文件名,若没有指明路径,则默认读取当前目录下的filepath文件

十二、删除

dd === > 删除光标所在的那一行

ndd === > 删除光标所在的向下n行

x === > 向后删除一个字符

X === > 向前删除一个字符

nx === > 向后删除连续的n个字符

注意:n为数字

d1G === > 删除第一行到光标所在处的所有数据

dG === > 删除光标所在处到最后一行的所有数据

十三、查找

/ [word] ===> 向下查找[word]关键字

? [word] ===> 向上查找[word]关键字

n ===> 重复查找动作,即查找下一个

N ===> 重复查找动作,反向查找下一个

注意:以上的 n、N 为字符,并不是数字

ctrl + g ===> 显示当前光标所在位置占整个文件的比重

% ===> 跳转到当前括号(包括'('   '['    '{'    ')'    ']'    '}'   )的配对括号所在的位置

十四、替换

r ===> 替换选中的字符或字符串

详解:

光标选中要替换掉的字符(可以结合可视化模式选中多个字符),按下 r 键进入替换模式,再次输入一个字符替换掉被选中的字符,若选中多个字符,则每个字符都会替换成输入的从键盘输入的字符

cw ===> 删除从当前光标开始到下一个单词开始的数据,并进入插入模式,即俗称的 替换单词

详解:

c 即 change,意思是改变,w 即 word,意思是一个单词。同理 c2w、c3w、......也是这个道理

c$ ===> 删除从当前光标开始到行尾的数据,并进入编辑模式

s/old/new ===> 在当前光标所在行内替换头一个字符串 old 为新字符串 new

s/old/new/g === >在当前光标所在行内替换所有的字符串 old 为新字符串 new

.,$  s/old/new/g === > 从当前光标开始到文件结尾替换old字符串为new

n,$  s/old/new/g === > 从第 n 行开始到文件结尾替换old字符串为new

%s/old/new/g ===> 在整个文件内替换所有的字符串 old 为新的字符串 new

g/old/s//new/g ===> 在整个文件内替换所有的字符串 old 为新的字符串 new

s/old/new/gc === > 替换old为new时会询问用户

注意:

不加 g,表示只对搜索字符串的首次出现进行替换

g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作

g 放在命令末尾,表示对搜索字符串的每次出现进行替换

十五、执行外部命令

! [command] ===> 执行外部命令,输完命令后需要回车执行

注意:

command 是指Linux Shell命令,不是让你从键盘输入command

详解:

按ESC进入命令模式后,输入 ! 然后再输入一个Linux命令回车即可执行,再次回车后返回Vim

Linux学习,Vim以及Vi常用快捷键的更多相关文章

  1. Linux下VIM配置以及常用快捷键

    一.VIM配置 在目录 /etc/vim下面,有个名为vimrc的文件,这是系统中公共的vim设置文件,对所有用户都有效.而在每个用户的主目录下,都能自己建立私有的设置文件,命名为:“.vimrc”. ...

  2. Linux学习笔记:vi常用命令

    在Linux系统中常用vi命令进行文本编辑. vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器.Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved), ...

  3. Linux的vim和vi编辑器

    vim和vi的基本介绍 所有的Linux 系统都会内建vi 文本编辑器. Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计. 代码补完.编译及错 ...

  4. vi常用快捷键

    vi常用快捷键 1)移动光标 h :光标左移一个字符k :光标上移一个字符j :光标下移一个字符l :光标右移一个字符 0 :光标移至行首$ :光标移至行尾 H :光标移至屏幕首行M :光标移至屏幕中 ...

  5. Linux学习笔记(四) vi编辑器

    一.vi 编辑器 vi 编辑器 (Visual Interface) 是所有 Unix 及 Linux 系统下标准的编辑器,相当于 Windows 系统中的记事本 它有三种模式,分别是: Comman ...

  6. Linux学习之十三-vi和vim编辑器及其快捷键

    vi和vim编辑器及其快捷键 1.vi与vim区别 它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面. vim的这些优势主要体现在以下几个方 ...

  7. Linux学习笔记之VI(VIM)编辑器

    百度关于vi的资料 http://baike.baidu.com/view/908054.htm 关于vi 和vim的介绍可以在上面的网址看到. 1   进入和退出vi 进入:在终端命令行输入 vi ...

  8. linux安装PyCharm,PyCharm常用快捷键及调试模式,pycharm里面对文件夹或者文件进行重命名

    PyCharm常用快捷键及调试模式 2017年10月18日 23:13:43 菜鸟之神 阅读数:5835    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

  9. linux学习笔记2-linux的常用命令

    第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...

随机推荐

  1. 基于 Roslyn 实现一个简单的条件解析引擎

    基于 Roslyn 实现一个简单的条件解析引擎 Intro 最近在做一个勋章的服务,我们想定义一些勋章的获取条件,满足条件之后就给用户颁发一个勋章,定义条件的时候会定义需要哪些参数,参数的类型,获取勋 ...

  2. 【springboot spring mybatis】看我怎么将springboot与spring整合mybatis与druid数据源

    目录 概述 1.mybatis 2.druid 壹:spring整合 2.jdbc.properties 3.mybatis-config.xml 二:java代码 1.mapper 2.servic ...

  3. 深入解析Underscore.js源码架构

    Underscore.js是很有名的一个工具库,我也经常用他来处理对象,数组等,本文会深入解析Underscore源码架构,跟大家一起学习下他源码的亮点,然后模仿他写一个简单的架子来加深理解.他的源码 ...

  4. Google Sign In

    我们平常也经常使用QQ,微信账号,登录其他应用.最近公司让我给网站添加一个谷歌账号登录.我来这里记录一下,莫怪~~~莫怪~~~ 1. 申请一个账号登录ID:  https://developers.g ...

  5. mvc+ef入门(三)

    (1)新建一个DAL层用来放置Accountcontext.cs和Accountinitializer.新建一个models层用来归放sysuser,sysrole和sysuserrole,三个类.( ...

  6. Topshelf+Quartz3.0基于控制台应用程序快速开发可调度windows服务

    1.TopShelf TopShelf是一个开源的跨平台的宿主服务框架.可通过.Net Core/.Net Framwork控制台应用程序快速开发windows服务,更加便于服务调试. 本文基于.Ne ...

  7. 五分钟学Java:一篇文章带你搞懂spring全家桶套餐

    原创声明 本文首发于微信公众号[程序员黄小斜] 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 本文思维导图 什么是Spring,为什么你要学习spring? 你第一次接触spring框架是在 ...

  8. linux golden-dict个性化添加词典

    国内有道,百度等参考https://www.jianshu.com/p/9bf577335945如果和我一样,想要添加大名鼎鼎的韦氏词典英文词典,则地址如下https://www.merriam-we ...

  9. TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人。

    简介 TensorFlow-Bitcoin-Robot:一个基于 TensorFlow LSTM 模型的 Bitcoin 价格预测机器人. 文章包括一下几个部分: 1.为什么要尝试做这个项目? 2.为 ...

  10. 使用Keras进行深度学习:(二)CNN讲解及实践

    欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习.深度学习的知识! 现今最主流的处理图像数据的技术当属深度神经网络了,尤其是卷积神经网 ...