您的位置:首页 > 运维架构 > Linux

linux c/c++ 编程之-----vim 基本使用

2013-10-25 20:12 555 查看
//高亮表示重要,易忘

设置一直显示行号: /etc/vim vimrc 增加 set nu

General
在命令模式下:
命令的组合:数字+命令
编辑模式的命令 小写一般往后,大写一般往前

visual mode
v
visual block mode
ctr+v

repeat the previous command (last change)
.

undo/redo
u/ctr+r

很多命令能通过
开始位置 命令 结束位置 执行

ctr+- 减小Vim窗口
ctr+shift+= 增大Vim 窗口

移动光标
basic movement
h j k l

word movement
w 下一个单词的开头
e 下一个单词的末尾
如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W
b 当前(前一个)的开头

ctr +f向下翻页
ctr + b 向上翻页

H 当前屏幕的最左上角
nH 当前屏幕第 n 行的行首

number powered movement
5w

gotostart/end
0/$

gotomatching parentheses
%

goto#line
gg G NG

^ 到本行第一个不是blank字符的位置
g_ 本行最后一个不是blank字符的位置

t, 在,之前的一个字符,,可以换成其他字符


区域选择
<action>a<object>
<action>i<object>


在visual 模式下,这些命令很强大,其命令格式为

<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"))



块操作:
<C-v>


块操作,典型的操作:
0 <C-v> <C-d> I-- [ESC]


^
→ 到行头
<C-v>
→ 开始块操作
<C-d>
→ 向下移动 (你也可以使用hjkl来移动光标,或是使用%,或是别的)
I-- [ESC]
→ I是插入,插入“
--
”,按ESC键来为每一行生效。

复制粘帖

p 粘帖
yy 拷贝当前行 相当于 ddp

y 从这里开始拷贝
0y$
ye
y2/foo

还有很多时间并不一定你就一定要按y才会拷贝,下面的命令也会被拷贝:

d
(删除 )
v
(可视化的选择)
gUw
(变大写)
guw
(变小写)??

插入,删除
a 光标后插入
c 修改命令,进入编辑模式
cw 替换光标所在位置后到一个单词结尾的字符,进入插入模式
r 取代命令,不进入编辑模式
s 替换光标所在位置字符

自动提示: <C-n> 和 <C-p>
在 Insert 模式下,你可以输入一个词的开头,然后按 <C-p>或是<C-n>,自动补齐功能

I 移到当前行首,在前面插入文本
A 移到当前行尾,在后面插入文本

insert a line after/before
o/O

insert text repeatedly
3iyesEsc

remove charactor under/before cursor
x/X

delete and save tothe paste board
d dw d3e

查找,替换

find a charactor
f

find word under curser next/previous
*/#

search text next/previous
/text n/N

命令模式
:e <path/filename> 打开文件
:saveas <path/filename> 另存为
:x :wq ZZ 保存退出
:q! 不保存直接退出
:bn :bq 移到打开的文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: