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中使 ...
随机推荐
- hyperledger fabric各类节点及其故障分析 摘自https://www.cnblogs.com/preminem/p/8729781.html
hyperledger fabric各类节点及其故障分析 1.Client节点 client代表由最终用户操作的实体,它必须连接到某一个peer节点或者orderer节点上与区块链网络通信.客户端 ...
- 前端大神讲解,初级程序与高级程序写表格变色的区别,dom 0 与dom 1
我们在遇到表格行数太多时,往往会眼花缭乱,下一行看成对应上一行.就要遇到写鼠标移动那行,那行高亮显示. 这里用到一个this关键字: 在面向对象里,this代表对象本身. 在这里只要记住,谁调用这个函 ...
- java网络编程Socket通信详解
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...
- Flask-状态保持-CSRF
问题:cookies基于浏览器的同源策略,不同域名的cookie不能相互访问,为什么可以进行跨站请求伪造呢? 原因:cookie基于浏览器的同源策略,确实是在实现状态保持的时候,不能跨域访问. 跨站请 ...
- SpringCloud之实现客户端的负载均衡Ribbon(二)
一 Ribbon简介 Ribbon是Netflix发布的负载均衡器,它有助于控制HTTP和TCP的客户端的行为.为Ribbon配置服务提供者地址后,Ribbon就可基于某种负载均衡算法,自动地帮助服务 ...
- C/C++基础----用于大型程序的工具(异常处理,命名空间,多重继承)
独立开发的子系统间协同处理错误的能力 使用各种库(可能包含独立开发的库进行协同开发的能力) 对比复杂的应用概念建模的能力 异常处理 异常将问题的检测和解决过程分离开 当执行一个throw之后,程序控制 ...
- C++进阶--析构函数中的异常
//############################################################################ /* * 不要让异常离开析构函数 * 析构 ...
- 【Mybatis】mybatis使用示例
BusinessAnalysisMapper.java import com.chinamobile.epic.dao.model.PerformanceMetricAnalysis; import ...
- 【mysql】IP地址整数int和varchar的转换
mysql中IP地址的存储 IP:如192.168.12.145,在存储时,若是采用varchar进行存储,存在两个主要缺点: 存储空间占用较大: 查询检索较慢: 解决方式: 存储时:将字符串类型的I ...
- PAT 乙级 1010 一元多项式求导 (25) C++版
1010. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数.(注:xn(n为整数)的一 ...