vim学习笔记(一)

:vertical sfind  垂直分隔窗口(vsf),但是两个窗口的内容完全相同。在编辑的时候,内容也完全相同,如果要关闭一个窗口,输入:exit即可
:buffers 显示整个缓冲区列表

ndG 删除从当前行到指定n行中的内容
nd  删除当前行及下面的n行

编辑加密文件,使用"-x"参数
vim -x exam.txt
下次使用vim打开该文件时,会提醒你输入密码,若密码不对,打开将是乱码。
‘-n’选项表示禁用交换文件,如
vim -x -n file.txt

vim中直接访问internet文件靠的是netrw插件。

在通常模式下,将光标放到你指定的字节上,输入命令g Ctrl+G就会在屏幕底部显示该字节的位置信息:
第几列,第几行,第几个词,第几个字符,第几个字节

在通常模式下,先将光标放到C文件的函数内某个局部变量的位置,输入gd命令,将会显示该变量所有出现(引用的或是定义的)地方
* 到与当前单词相同的下一个单词上
#到与当前单词相同的上一个单词上
‘’当上次光标停靠的行
%让光标跳到匹配的括号上
J 将当前行和下一行合并起来

使用m命令标注文本的位置

vim通过cindent来实现自动缩进,set cindent可缩写为se cindent,注意cindent控制缩进量通过设置shiftwidth的值(默认为8)。
语法高亮功能
syntax=on

:make 简写为 :mak

查看运行时文件路径
:echo $VIMRUNTIME
/usr/share/vim/vim72
查看vim所用的语言
:language
使用下面的命令来查看vim的基本信息(版本,编译时间,编译方式,链接方式),和配置的模块功能,vimrc文件和用户exrc文件路径等
:version

vim启动时会去检查你的系统所用的语言,使用如下命令查询
:language
使用如下命令设置
:language fr_FR.ISO_8859-1
encoding选项告诉vim你所用的字符是什么,它同时影响缓冲区内的文件,寄存器的内容以及vim脚本文件等
vim使用fileencodings选项中指定的可用编码方案(使用unicode时默认值为“ucs-bom,utf-8,latin1”)来自动检测你的文本
fileencoding选项被设置为检测到的编码,如果与encoding比较,发现不同就需要转换编码
:set fileencodings=ucs-bom,utf-8,latin
表示文件没有字节顺序标记并且不是utf-8时就设置为西欧语系
:set fileencodings=ucs-bom,utf-8,sjis
表示文件没有字节顺序标记并且不是utf-8时就设置为日文

作为命令快捷键的建映射

使用键盘映射的方法
CTRL+^ 在normal模式下跳转到最近编辑的文件
             在insert和冒号命令行模式下切换两种不同语言的字符集

查看vim的运行时目录
:set runtimepath

键映射
将一个单个的键映射为一系列其它键了,使用尖括号表示法,可以定义不同模式下的键序,也可以对同一个键序在不同模式下映射不同的内容
对于mapping簇的命令,一般来说,都有各个不同模式下的变体
Normal模式:
:map  <F2> <CR>Date:  <Esc>:read !date<CR>kJ
插入模式:
:imap  <F2> <CR>Date:  <Esc>:read !date<CR>kJ
命令行模式:
:cmap
Operating-pending:
:omap <F7> a{

使用:map查看当前定义了哪些映射,据此可以判断一些在<>中的字符是否能被vim以特殊字符对待
当一个映射在运行过程中发生了一个错误,那么映射的剩余动作就会被撤销掉,也可以按Ctrl+C来中断正在运行的映射
:noremap  避免映射的内容又被映射
:unmap 删除一个映射
:mapclear 删除所有的映射
在映射中使用空格的话,使用<Space>来代替,|是命令之间的分隔符,
如果同时有缩写和映射,vim会优先使用映射,vim对键入每个字符的延迟进行监控

vim编辑器允许你定义自己的冒号命令,然后就可以像执行vim固有的冒号命令一样来使用它:
语法格式:
:command DeleteFirst 1delete
自定义的冒号命令必须以一个大写字母开头
使用下面的命令列出所有的自定义命令:
:command
自定义命令的冒号命令可以跟一系列参数,使用-nargs,比如
:command -nagrs=0 DeleteFirst 1delete

自动命令
一个自动命令是在某个事件发生时会自动执行的命令。都是冒号命令。
:autocmd  [group] {events} {file-pattern} [nested] {command}
其中
{group}用于在定义自动命令时为相关的命令分组,也便于删除自动命令时,据此一次删除一批命令
{file-pattern}是模式字串,一个通常带有通配符的文件名,比如“*.txt”,“*.c,*.h”
{command} 实际要执行的命令体
删除自动命令,比如:
:autocmd! FileWritePre *     
注意不要命令体,下面的命令列出当前已定义的自动命令列表
:autocmd
使用下面的命令来忽略一个事件
:set eventignore=all


谢谢各位的无私分享。俺在工作中常常vi,也把俺总结的一些小trick分享出来。仅供参考:
- Replace pattern1 to pattern2 in line range from line 21 - 27:
:21,27s/pattern1/pattern2/

- Replace pattern1 to pattern2 in line range from line 21 - 27 - if more than one pattern1 in the SAME line, replace all of them:
:21,27s/pattern1/pattern2/g

- Replace pattern1 to pattern2 in line range from line 21 - bottom line of the file:
:21,$s/pattern1/pattern2/
:21,$s/pattern1/pattern2/g

- 全局替换:
:1,$s/pattern1/pattern2/
or,
:1,$s/pattern1/pattern2/g
- Delete lines from certain line number to current line, like Delete from beginning to this line:
:1,./d

- Right shift a tab from line 1 - 20.
:1,20> 

- Right shift two tabs from line 1 - 20.
:1,20>> 

- Left shift a tab from line 1 - 20.
:1,20<

- Delete # in the beginning of each line (in unix shell, # is the starting character of each line).
:1,$s/^#//
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值