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

几句话

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

vim常用命令

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

5e21d39c53f3b8274eeb9d0909a26c49.png

简单来讲就是,当我们刚打开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

0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux指纹登录实现原理,指纹识别技术原理与基于Linux系统的指纹识别门禁系统设计...

指纹作为人体的身体特征&#xff0c;具有唯一性、稳定性和不易盗用等特点。随着指纹识别理论逐渐成熟、指纹采集工具这一难题得到解决&#xff0c;指纹识别已经成为目前最广泛应用的生物识别之一&#xff0c;逐渐取代了传统的认证识别方式&#xff0c;广泛应用于金融、公安、证…

linux wps历史版本下载,WPS Office 2019 For Linux 11.1.0.9604版携新更新发布下载

WPS Office 2019 For Linux 11.1.0.9604版本发布了&#xff0c;仅支持64位计算机&#xff0c;提供Deb和Rpm格式软件包下载。更新详情1、WPS公共&#xff1a;优化界面绘制相关api的调用效率。适配ibus和fcitx框架的输入法&#xff0c;解决无法输入中文&#xff0c;预输入显示等问…

Linux双独立显卡SLI,玩点新奇的 双显卡给你不同的“SLI”效果

显卡老是千篇一律的常规测试对于我们这些测试人员来说早就已经没有什么意思了&#xff0c;无非就是跑分&#xff0c;超频后跑分&#xff0c;拷机等等一些测试项目&#xff0c;常看我们测试的玩家应该也知道同芯片显卡除非是频率的差别非常大才会有较为明显的性能差距体现出来&a…

android win10 驱动安装失败,解决在win10系统下小米手机驱动安装失败的具体步骤...

随着系统的升级越来越快&#xff0c;对于许多用户的系统都已经升级到win10系统了&#xff0c;win10系统在给用户带来方便的同时&#xff0c;有时候也会遇到一些小麻烦&#xff0c;比如说对于最新的Window10正式版系统而言&#xff0c;基本主流的手机驱动都能自动检测安装。不过…

z3735f android x86,英特尔的Atom Z3735F分析 全文总结_台电 X80HD_平板电脑评测-中关村在线...

硬件配置&#xff1a;英特尔64位提供性能保证台电X80HD双系统使用Intel Atom Z3735F四核处理器&#xff0c;最高睿频可达1.83GHz&#xff0c;其采用64位X86架构&#xff0c;搭载最新一代睿频加速技术&#xff0c;并拥有四核四线程&#xff0c;支持多任务同时处理。英特尔的Atom…

浏览器 android x86,360浏览器x86版下载

360浏览器x86版下载&#xff0c;是专门针对现在越来越多的win10和安卓双系统的国产平板电脑使用的安卓版app,例如台电平板&#xff0c;适用机型 适用于联想K800、联想K900、MOTO MT788、MOTO XT890、Acer联想平板等,只要安装了x86版本就可以愉快的玩耍啦&#xff0c;你还不赶快…

android怎么换小米系统更新,miui8怎么更新 miui8更新升级方法汇总

小米miui8系统已经开始测试&#xff0c;相信你的小米手机已准备好迎接新系统的到来&#xff0c;下文介绍小米miui8更新方法大全&#xff0c;一起小编一起了解下吧&#xff01;小米miui8刷机方法大全&#xff1a;一、系统推送OTA升级OTA推送升级MIUI8(需连接Wifi进行)根据微博上…

Android入门简书,android ndk开发入门随笔(一)

ndk&#xff0c;jni入门随笔因为工作缘故最近在研究jni&#xff0c;ndk方面知识&#xff0c;在此总结入坑以来的一些问题.配置环境可以在下面geogle官方看。下面是链接我一说ndk&#xff0c;jni可能小伙伴要问了这是什么&#xff0c;在此我来总结我个人的看法jni就是一个接口&a…

台式计算机驱动程序未被安装,电脑未能成功安装设备驱动程序怎么办

电脑的设备驱动程序&#xff1a;驱动程序一般指的是设备驱动程序(DeviceDriver)&#xff0c;是一种可以使计算机和设备通信的特殊程序。相当于硬件的接口&#xff0c;操作系统只有通过这个接口&#xff0c;才能控制硬件设备的工作&#xff0c;如某设备的驱动程序未能正确安装&a…

android摄像头矩形框提取_视频图像摄像头跟踪的上位机系统设计

​背景介绍视频序列中的目标进行跟踪是计算机视觉的热门研究领域之一&#xff0c;其主要过程是首先在视频序列的第一帧图像中选定跟踪目标&#xff0c;之后运行跟踪算法&#xff0c;实现在后续帧中预测跟踪目标的位置。本系统设计了一个集成视觉目标跟踪算法的上位机&#xff0…

c++清空一个txt文本_Linux下常用文本处理命令大全

Linux中很多文本工具都使用到了正则表达式&#xff0c;正则表达式可以极大的简化linux系统管理工作&#xff0c;因为网上有很多正则相关的教程&#xff0c;所以这里不再讲述&#xff0c;我当时看的是菜鸟的正则表达式&#xff0c;看个一下午在实验几遍基本就会了&#xff0c;除…

labuladong 的算法小抄_来自GitHub 68.8k star的硬核算法教程

很多朋友害怕算法&#xff0c;其实大可不必&#xff0c;算法题无非就那几个套路&#xff0c;一旦掌握&#xff0c;就会觉得算法实在是太朴实无华且枯燥了&#xff01;本文选自硬核算法教程《labuladong的算法小抄》&#xff0c;带你学习套路&#xff0c;把握各类算法问题的共性…

router vue 动态改变url_2020年 vue常见面试问题总结(干货)!

1.什么是mvvm模式&#xff0c;谈谈你的理解&#xff1f; MVVM - Model View ViewModel&#xff0c;数据&#xff0c;视图&#xff0c;视图模型view 可以通过 事件绑定 的方式影响 model&#xff0c;model 可以通过 数据绑定 的形式影响到view&#xff0c;viewModel是把 model 和…

html怎么弄艺术字体,如何为图片加上艺术字的图文方法步骤

给图片加字有好多方法&#xff0c;比如用photoshop等专业工具&#xff0c;在线图片加字&#xff0c;但是前者效果好&#xff0c;操作较复杂&#xff0c;后者效果不大理想。其实有更简单相对效果也不错的方法&#xff0c;利用你手边的工具就可以了&#xff01;下面介绍利用Windo…

androidstudio调用系统相机为什么resultcode一直返回0_函数递归调用?看这文就够了...

作者 | Cooper Song责编 | Elle出品 | 程序人生(ID&#xff1a;coder_life)我猜&#xff0c;大多数程序员第一次接触函数的递归调用都是在算斐波那契数列某项值的时候&#xff0c;这是函数递归调用最常见的应用之一。规定第一项和第二项为1&#xff0c;后面的项&#xff0c;每一…

http请求 url 竖线_http.createServer创建http服务

语法&#xff1a;http.createServer([options][, requestListener])第二个参数requestListener&#xff0c;是一个自动添加到request事件的方法。返回一个新的 http.Server实例。之前代码是使用server.on(request,callback)来监听请求事件&#xff0c;由于http.createServer第二…

物理不突出能学计算机吗,物理成绩不突出,高中选科怎么办?3个理由让你解除后顾之忧!...

目前确定将要于2021年采用新高考“312”模式的有河北、辽宁、江苏、福建、湖南、湖北、广东和重庆8个省市。但是很多高一新生和家长们&#xff0c;面对选科问题时&#xff0c;却是犯了愁。“想选物理呢&#xff0c;物理成绩不突出&#xff0c;没有优势&#xff0c;听说选考物理…

@bean注解和@component注解的区别_通过源码查看 @Component,@Service 等注解是如何被解析的...

点击上方“匠心零度”&#xff0c;选择“设为星标”做积极的人&#xff0c;而不是积极废人来源&#xff1a;my.oschina.net/floor/blog/4325651前言1.Component解析流程找入口找核心方法概要分析2.查文档找思路3. 探寻Component派生性流程1. 确定metadataReader2.查看match方法…

centos7已有数据硬盘挂载_干货!如何给虚拟机增加虚拟硬盘,Linux再分区挂载

很多朋友一开始给虚拟机的硬盘都很小&#xff0c;用着用着虚拟硬盘就不够了&#xff0c;今天小编就给大伙说说如何给虚拟机添加虚拟硬盘在到Linux系统下分区格式化再到挂载。点击创建新的虚拟盘我分配一个8g的硬盘吧&#xff01;现在启动centos 7查看一下你刚刚添加的8G的硬盘&…

diy机器人图片 手绘纸箱_废物利用,她用几个纸箱让家里变成动物园,孩子回家乐坏了!收藏...

纸箱是我们日常生活中最常见的一种废品&#xff0c;现在随着网购的崛起&#xff0c;家里的纸箱越来越多&#xff0c;这时候你是直接丢弃&#xff0c;还是会想想是否可以再利用的价值&#xff1f;这些看似没用的纸箱&#xff0c;在创意妈的眼中可是个宝贝呢~它可以变废为宝成为孩…