VIM笔记

w e G f t(比f光标近) x dd yy p u 都可以配合数字键 以及移动的j k h l从当前光标移动
b ( ) { } <C-End>
快速扫描复习:
0 ^ g_ $ <C-r>(ctrl+r) NG gg(到文件头) G .
% 匹配括号移动( 可以匹配[{() 
* 移动到光标所在单词下一个
 #  移动光标到光标所在上一个单词
v 0y$ gu gU guw
c mean cut
f(find) t“ 查找",并将光标指向"   2t"
dt"  删除当前到"的内容 , 2dt"
vi" v2i)  //快速选中""或者()其中的内容(不管是左闭合还是右闭合), 还有via(选中内容包括()符号
0<C-v><C-d> I-- [ESC] (windows vi <C-q>块操作) <>左右缩进 = 自动缩进
<C-n><C-p>自动补齐
:split 和:vsplit <C-w>
} 段落末尾
------------------开始学习
normal 模式:
i :insert
x :删除当前所在字符.(x删除后仍然在normal模式,s删除后进入插入模式. 均可以带数字键)
:wq
dd:删除当前行 d删除
y:复制所选选项目(shift或者通过0y$标记内容) yy:复制当前行内容到vim的粘贴板中间.
p:粘贴剪贴板 .
hjkl 对应光标左下上右
-----------------------------------------------------
等级二:
各种插入模式:
a 光标后插入
o 当前行后插入
O 大写O,当前行前面插入
cw 替换从光标所在位置到一个单词结尾字符(w表示word , 可以用$符号删除行后内容)
移动光标:
0 到本行头
^ 本行第一个不是blank字符的位置(blank字符就是空格,tab,换行,回车)
$ 到本行行尾
g_ (注意有下划线)到本行最后一个不是blank字符的位置
/pattern 搜索字符串(/符号,多个匹配通过n向下移动到下一个匹配单词 , N移动到上一个)
              有意思的是你只能通过n向下搜索相同字符,如果你不小心跳过头了%号能帮你,当然还有*后面会介绍。
Undo/Redo
u -> 撤销操作
<C-r>(ctrl+r) -> redo 取消刚刚的撤销
:e <path/to/file> 打开一个文件
:w 存盘
:saveas <path/to/file> 另存为
:q!
:qa! 强行退出所有正在编辑的文件
:bn :bp 同时打开很多文件,用这两个命令来切换下一个或者上一个文件 :n也可以到下一个文件.
-----------------------------------------------
第三级
. ->重复上一次命令
2: N<command> ->重复某个命令N次 , 例如2dd (删除两行), 3p(粘贴文本3次) . 100idesu[ESC] 写下desu 100次(插入i,适用于任何命令)
---------------------------------------------
more:
NG ->到第N行(命令中的G大写 , 另外:N也可以跳到多少行)
gg ->到第一行
G ->到最后一行
按照单词移动
w->到下一个单词的开头
W->下一长单词(非blank字符的下一个,适用于程序代码)
b->移动到当前单词头部
e->到本单词的结尾 (程序变量分割,字母数字下划线)
 如果你认为单词是由默认方式,那么就用小写的e和w。默认上来说,一个单词由字母,数字和下划线组成(程序变量)
 如果你认为单词是由blank字符分隔符,那么你需要使用大写的E和W。(程序语句)
      . ew E W
x = (name_1,vision_3); #this is a comment;
若对于光标在name的a位置.
按段落移动:
( 移到前一个句子句首
) 后...
{ 当前段首
} 段末尾
End 移动到行尾与$作用一样 <C -End>移动到文件尾 <ctrl+shift+end>选中到文件尾巴
Home 与0作用一样. 附加与end一样
---------------------------------------------------
最强的光标移动:
% 匹配括号移动, 包括({[ (你需要先把光标移到括号上)
*和# 匹配光标当前所在的单词,(*移动到下一个,#移动到上一个)
          还记得前面的/搜索单词么 , 通过n移动到下一个的,*,#两个符号可以帮你改变指定的方向
 
程序员必备技能
-----------------
很多命令可以与移动光标连动
<start position> <command> <end positon>
例如0y$ 表示拷贝行头到行末的最后一个字符. (当然不用提醒p是粘贴到光标后)
ye 拷贝当前位置到本单词最后一个字符
y2/foo 拷贝2个foo之间的内容
当要删除{}内的内容时候, 可以先f{ ,然后d% ,  或者直接匹配dt} ,拷贝同理。
很多时间不一定按y才会拷贝,下面的命令也会被拷贝:
d(删除)
v(可视化选择
gU(变大写) 0gU$
gU(变小写) guw
可视化选择是一个很有意思的命令,你可以先按v,然后移动光标选中(然后你可以d,也可以y,或者gU).如果你在shift前没选择可视化
选中的文本会被删除.
-------------------------
vim 超级功能
在当前行上移动光标:0 $ w e ^(本行第一个非blank字符位置) g_() f(find) F t T()
fa -> 到下一个为a的字符处(也可以配合数字). 或者其他字符(光标会锁定到a , 你可以通过i插入或者x)
t, ->到,前的第一个字符()
还有一个很有用的命令是dt" -> 删除所有内容直到遇到双引号"(双引号不会被删除,如果是df"就会删除双引号)
区域选择 <action>a<object> 或者 <action>i<object>
在visual (v) 模式下, 这些命令很强大格式为
<action>a<object> 和<action>i<object>
区别在于all 与in 是否包括对象object
action可以是任何命令如d,y,v
object 可以是w一个单词, s一个句子,p 一个段落. 也可以是一个特别的字符:" ' ) } ];
假设你有一个字符串 (map (+) ("foo")).而光标键在第一个 o 的位置。 (vi :mean view in , va :mean view all)
vi" ->会选择foo
va" ->会选择"foo"
vi) ->会选择"foo"
va) ->会选择("foo").
v2i) -> map (+) ("foo")
v2a) -> (map (+) ("foo"))
块操作:<C-v> (表示ctrl+v)
典型的块操作: 0<C-v><C-d> I-- [ESC]
选中块前面插入-- ,每行前面(用于注释操作) 注意一定要大写,(A也适用,用于追加向后)
在Windows下的vim,你需要使用 <C-q> 而不是 <C-v> ,<C-v> 是拷贝剪贴板。
一旦被选中我们可以做下面的事:
J ->把所有行连接起来
<> ->左右缩进
= ->自动给缩进(这个功能很强大(自动排版功能))
自动提示:<C-n>和<C-p>
insert模式下输入一个词开头,然后<C-n>和<C-p>就有自动补齐功能了.
宏录制:qa 操作序列q,@,@@
qa把你的操作记录在寄存器a 于是@a会replay被录制的宏,@@一个快捷键replay最新履职的宏
例如: qaYp<C-a>q
-----------------
分屏: split 和vsplit
:split ->创建分屏(:vsplit创建垂直分屏)
<C-w><dir> dir 就是方向,可以是hjkl或者.用来切换分屏
<C-w>_或者<C-w|>:最大化尺寸(<C-w|>垂直分屏)
<C-w>+或者<C-w-):增加尺寸
 我建议你每天都学1到2个新的命令。
在两到三周后,你会感到vim的强大的。
你会学习到诸如 !, 目录,寄存器,插件等很多其它的功能。
学习vim就像学弹钢琴一样,一旦学会,受益无穷。
-------------------
<C-f> 向下翻页page ip
<C-b> 向上
:X 加密:输入密码然后:wq文件被加密 . 解除加密,密码为空
s 替换(类似于x). 5s(abcde - s). 替换完成后进入插入模式,x替换完成后仍然在normal模式
S 当前行替换为多个字符
r 用单个字符替换5s,后5个字符都被替换成同一个字符(abcde - sssss)
-------------------vi 中的shell 命令
syntax on :标记定位,语法高亮(对应文件后缀) 可以用sy off缩写


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值