vim basic
1.基本用法 1.1.编辑模式 1.2.底行模式 1.3.环境配置 1.4.使用时发现的 2.编辑多个文档 3.选项 |
1.基本用法
1.1.编辑模式
插入
插入命令 | 插入位置 |
---|---|
i | 光标左侧 |
a | 光标右侧 |
o | 前增加一行 |
I | 行开头 |
A | 行末尾 |
O | 后增加一行 |
移动光标
命令 | 说明 |
---|---|
h j k l | 左 下 上 右 |
gg |
文件首行 |
G | 文件末行 |
H | 屏幕首行 |
M |
屏幕中间一行 |
L |
屏幕末行 |
nH | 屏幕的第 n 行 |
nL | 屏幕的第 n 行(倒数) |
w | 下一个词的开头(暂时这样理解) |
e | 下一个词的末尾 |
b | 前一个词的开头 |
0 | 行首 |
$ | 行尾 |
^ | 行非空字符首 |
n | 下一个匹配项目 |
N | 上一个匹配项目 |
翻屏
操作 | 说明 |
---|---|
ctrl + f |
下翻一屏 |
ctrl + b | 上翻一屏 |
ctrl + d |
下翻半屏 |
ctrl + u | 上翻半屏 |
删除
命令 | 说明 |
---|---|
x | 删除光标处的字符 |
nx | 删到光标后 n 各字符 |
X | 上出光标前一个字符 |
D | 删除至行尾 |
dw | 删除光标右一个词 |
ndw | 删除右边 n 个词 |
db | 删除光标左一个词 |
ndb | 删除左边 n 个词 |
dd | 删除一行(剪切) |
ndd | 删除 n 行 |
取代
命令 | 说明 |
---|---|
r | 取代光标处字符 |
R | 取代字符(按 ESC 停止取代) |
复制、粘贴、取消
命令 | 说明 |
---|---|
yy | 复制行 |
nyy | 复制 n 行 |
yw | 复制光标到字尾的字符 |
p | 光标后新建一行粘贴 |
P | 光标前新建一行粘贴 |
u | 撤销 |
ctrl + r | 恢复 |
yG | 复制到最后一行 |
3y | 从当前行算起,复制3行 |
其他操作
操作 | 说明 |
---|---|
. | 重复前一次的编辑操作 |
v | 可视化模式 |
1.2.底行模式
设定、查找、删除、保存、退出
命令 | 说明 |
---|---|
:set nu | 显示行号 |
:set nonu | 取消行号 |
/sunny | 向下搜索“sunny” |
?sunny | 向上搜索“sunny” |
:1,3d | 从第一行删到第三行 |
:wq | 保存退出 |
:q! | 不保存退出 |
不常用设定
命名格式 | 说明 |
---|---|
:set ic | 忽略大小写 |
:set noic | |
:set ai | 自动缩进 |
:set hls | 高亮显示搜索 |
:set nohls | |
:syn on | 高亮显示语法 |
:syn off | |
:r file1.txt | 从光标位置读取一个文件的内容到这里 |
:w file2.txt | 另存为…… |
:! cat file1.txt | 执行系统命令 |
替换命令
cat str.txt “举例时,下边展示的只有三行,是为了节约该页面在手机上打开时的流量。”
- 111 222 333 444 555 666 777 888 999 000
- 111 222 333 444 555 666 777 888 999 000
- 111 222 333 444 555 666 777 888 999 000
命令格式 | 作用说明 |
---|---|
:s/8/ok/ | 替换光标所在行的头一个匹配的字符“8”,不管光标在行首还是行尾巴 |
:s/7/ok/g | 替换当前行所有的字符“7” |
:8,12s/6/ok/ | 替换8到12行第一个出现的字符“6”,不管光标位于何处 |
:8,12s/6/ok/g | 这就不用说了 |
:.,$s/3/ok/ | 当前行到最后一行 |
:11s/0/ok/ | 替换11行的首个字符“0” |
1.3.环境配置
设置行号
当需要进入时就显示行号。在用户目录下,新建一个隐藏文件。
- $ cd ~
- $ vim .vimrc
- set nu
进入时同样对于 vi、 vim 都有效果。
1.4.使用时发现的
使用经验:
① 使用“dd”剪贴一行,在粘贴以前,按下数字“6”,然后粘贴,就会同时粘贴 6 行出来。
② 使用编辑器时,当光标落到某一个单词:“strcpy”、“printf”、“memcpy”、“const”。按下一个大写的 k 键(K),等效于“man strcpy”、“man printf”、“man memcpy”、“man const”。
如果有对应的条目会显现出来,没有按回车会返回。
③ 编辑文件时,按下“end”键,会切换字母的大小写。(大写变小写、小写变大写)
2.编辑多个文档
2.1.打开多个文档
以标签方式打开
- $ vim -p 1.txt 2.txt 3.txt
切换方式“g t”
以窗口模式打开
- $ vim -o 1.txt 2.txt 3.txt
- $ vim -O 1.txt 2.txt 3.txt
不管是标签方式还是窗口方式,都可以通过命令行“:n”、“:N”方式切换。
窗口模式下,可以用“ctrl+w w”、“ctrl+w ‘方向键’”完成切换。保存退出、退出时,先退出最后一次光标所在的文件。一次全部退出,“:qa”。
编辑多个文档,意义在于,可以在多个文件之间完成复制、粘贴、剪切动作。
2.2.先打开一个文档
在vim的编辑模式,输入“split dir/file”、“vsplit dir/file”打开一个新的文件窗格。还可以在这个命令前带上数字,多打开一个空的窗格。打开空的窗格:“new”、“vnew”。
上下窗格结构:
●调整窗格大小,调整为13行:“13 Ctrl+w _”。当前窗格增加5行:“3 Ctrl+w +”;缩减2行:“2 Ctrl+w -”。调整为最大行:“Ctrl+w _”。
●当前窗格拆分:按下“ctrl+w”,按下“s”或者“v”,就可以实现竖直拆分、横向拆分。
调整窗格位置:
●“Ctrl+W”跟上表示方向的字母键的大写,当前窗格右移“Ctrl+W L”。
在vim的编辑模式,输入“tabedit dir/file”打开一个新的标签页。
3.选项
打开文件直接定位到某行、末行
- # vim +33 rc.sysinit
- # vim + rc.sysinit
打开时直接匹配到某行
- # vim +/init rc.sysinit
简单配置
- :set nu
- :set ai
- :syn on
- :set nohls
vim basic的更多相关文章
- ubuntu16.04(beaglebone) 下vim 和gcc 的信息
root@arm:~# dpkg -L gcc /. /usr /usr/bin /usr/bin/c99-gcc /usr/bin/c89-gcc /usr/share /usr/share/doc ...
- vim编辑技巧
算上大学上课linux接触四年了,可惜除了工作接触的那些,其他地方还是很水的,都不精通,今日翻来看了看以前过目即忘的vim技巧,发现,如无几年操作经验,这些技巧很难领悟的.这里写下来,以备后查. 区块 ...
- Vim命令大全
1.进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于 ...
- VIM配置相关记录
把一直使用中的vim配置做个GIT入库管理,也把之前积累在机器上的文档,做个汇总. https://github.com/wujuguang/kyvim 1. 安装完整版vim vi和vim的区别?在 ...
- 【Linux/Ubuntu学习4】ubuntu 下面安装 vim 的问题
ubuntu 下面安装 vim 的问题 1.输入vim时,显示: 程序“vim”已包含在以下软件包中: * vim * vim-gnome * vim-tiny * vim-gtk * vim-nox ...
- VIM复制粘贴大全!
原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry 内容: 用vim这么久 了,始终也不知道怎么在vim中使 ...
- 【不积跬步,无以致千里】vim复制
用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽:上次论坛上有人问到了怎么在vim中使 ...
- Raspberry pi raspbain系统下使用vim
一开始 apt-get install vim不好用. 在putty中执行这条命令就可以了. sudo apt-get update && sudo apt-get install v ...
- vim的复制粘贴小结(转)
原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry 内容: 用vim这么久 了,始终也不知道怎么在vim中使 ...
随机推荐
- C# 抽象类和密闭方法
抽象类abstract: 1.抽象类只存在一个目的就是被继承:2.抽象类不能够实例化,只能够被继承:3.抽象类可以包含抽象成员和普通成员,以及他们的任意组合:4.抽象类的抽象成员在派生类中需要使用ov ...
- AI硬件 XPU
市场对人工智能的热情持续高涨,特别是硬件领域.人工智能将成为下一个大风口,首当其冲的就包括硬件, 在图像语音识别.无人驾驶等人工智能领域的运用层面,图形处理器 (GPU)正迅速扩大市场占比,而谷歌专门 ...
- Linux ssh服务器配置
配置文件在/etc/sshd_config,注意只有root可rw,其他所有用户权限为---. 配置说明可参考man sshd_config. 如果更改了服务器端口号,并且启用了SELinux,需要执 ...
- 持续集成(Continuous Integration)基本概念与实践
本文由Markdown语法编辑器编辑完成. From https://blog.csdn.net/inter_peng/article/details/53131831 1. 持续集成的概念 持续集成 ...
- virtualBox NAT模式,设置虚拟机可上网,宿主机可访问虚拟机的方法
环境描述: 宿主机:windows Server 2008 64bit,IPV4地址,有网络. 宿主机上的主要软件环境: virtualBox 5.0.24 virtualBox中安装了CentOS ...
- go get golang.org/x 包失败解决方法
由于墙的原因,国内使用 go get安装golang 官方包可能会失败 解决方法 方法1 [不需要FQ] Win10下相关配置: GOPATH : E:\go 安装记录: E:\>go get ...
- java1.8 新特性(关于 match,find reduce )操作
match处理Integer集合 package lambda.stream; /** * @author 作者:cb * @version 创建时间:2019年1月4日 下午2:35:05 */ i ...
- [转][CEF]自动播放视频
1.CEF 默认不支持 mp4,可以在网上下载热心网友提供的修改版. 查看支持的特性的方法:在 CEF 中访问网页 :http://html5test.com/ 2. 打开网页后视频自动播放: mut ...
- 廖雪峰Java2面向对象编程-6Java核心类-4JavaBean
1.JavaBean定义 符合以下命名规范的class被成为JavaBean private 类型的field 针对这个field的get和set方法 public class Person { pr ...
- Android-PullToRefresh 下拉刷新增加setOnItemLongClickListener
项目地址:https://github.com/chrisbanes/Android-PullToRefresh 不知道为什么这个项目没有给listview 加 OnItemLongClickLis ...