在命令状态,:s/old/new/g 替换光标所在的行。 :%s/old/new/g 替换所有的
:r filename 引入外部的文件
H M L G
开始 中间 底部 末尾
列间移动(重要) gm,移动到行的屏幕的中间
gd ,跳到变量的定义处
vi 操作二进制文件
%!xxd
首先,打开二进制文件时要加参数"-b",不然会报文件第一行错误.
$vim -b tuxcmd
打开文件后,默认是文本格式的,我们用":%!xxd"可以切换到十六进制编辑.
:%!xxd
是不是和utaredit很像呀?还可以加上参数-c来设置每行显示多少字节,比方用":%!xxd -c 16",就会显示成16字节一行.
如果用":%!od"命令,则会隐藏左侧的文本列.
不过,有一点不爽的就是改变文本列,不会改变16进制里的数据,只能手动在16进制列做修改.在文本列里的修改是不会生效的.
注意:修改完成后,不要保存,要再用":%!xxd -r"切换成文本状态格式再保存.
:%!xxd -r
- ma:在当前光标的位置标记一个书签,名字为 a。书签名只能是小写字母。你看不见书签的存在,但它确实已经在那里了。
- `a:到书签 a 处。注意这个不是单引号,它一般位于大部分键盘的 1 的左边。
- `.:到你上次编辑文件的地方。这个命令很有用,而且你不用自己去标记它。
<action>a<object>
和 <action>i<object>
● action可以是任何的命令,如
d
(删除), y
(拷贝), v
(可以视模式选择)。
● object 可能是: w
一个单词, W
一个以空格为分隔的单词, s
一个句字, p
一个段落。也可以是一个特别的字符:"、
'、
)、
}、
]。
假设你有一个字符串 (map (+) ("foo"))
.而光标键在第一个 o
的位置。
● vi"
→ 会选择 foo
.
● va"
→ 会选择 "foo"
.
● vi)
→ 会选择 "foo"
.
● va)
→ 会选择("foo")
.
● v2i)
→ 会选择 map (+) ("foo")
● v2a)
→ 会选择 (map (+) ("foo"))
例子:
((map) + (+) ("foo dsfdsfdsa"))
vim 高级使用技巧 自动生成数字编号的列表
string1 2string string3string
string2 3string string4string
string3 4string string5string
string4 5string string6string
string5 6string string7string
string6 7string string8string
string7 8string string9string
按如下步骤即可:
1.打开vim 输入第一行string1 2string string3string 按esc键
2.按qa--------->用寄存器a开始记录
3.按Y,然后按p--------->拷贝一个副本
4.分别把鼠标移到副本这一行string1 2string string3string的数字上并分别按ctrl+a,
此时副本这行变成string2 3string string4string---------->ctrl+a增加计数
5.按q停止记录
6.count@a---------->其中count为要生成的行数,在本例中为5@a
另:
命令寄存器 "a 到 "z 或者 "A 到 "Z
Vim 只有在你指定的时候才使用这些寄存器。指定为小写字母时替换原来的内容,指定为
大写字母时附加到原来的内容
保存时没有权限时用如下的命令
vim tab
:tabnew filename
在vim窗口打开一个tab
gt/gT 切换tab
vim session
:mksession! 保存当前的工作区, 会在当前路径下生成Sesson.vim文件 下次使用时用vim -S Load 进行
vim find
set path=./** find:Test.java
vimgrep
:vimgrep /Import/gj **
在vim内查找Import ,找到后不跳转到第一个文件。 g 指允许重复 j 是不跳转。如果要跳转,则不用j.
vimgrep 查找的数据,放在quickList中, :cw 打开quickList ,
quickList,是存放数据缓存的地方,如make 的信息,grep的信息。 可以使用:cn 跳到下一个。
vim 快速打开最近的历史文件
:ls 当前缓存的文件
使用 e #编号 打开
或者 bro ol 最近打开的所有的文件, 按q退出时,可以传一个编号,打开文件
vim make 命令
set makeprg=mvn\ clean\ compile
输入 make 可以用mvn编译文件
在命令mode, ctrl + f , 打开最近使用过的command-line history.
vim 在配置
在.vimrc 中添加
set ts=4
set expandtab
set autoindent
set encoding=utf-8
这样把tab 转成空格。回车之后,也是4个空格。