您的位置:首页 > 其它

Vim【学习笔记】

2017-02-23 23:27 232 查看
【2017-02-04】

先放几个比较好的资料,看这些资料就好了:

1.Vim入门基础http://www.jianshu.com/p/bcbe916f97e1

2.vim配置http://blog.csdn.net/g_brightboy/article/details/14229139

3.简明Vim练级攻略http://coolshell.cn/articles/5426.html

4.http://blog.csdn.net/mu_zhou233/article/details/53045831

【update:2017-02-18】学会了替换,注意[需要转义

吐槽:在MacOS上安装Vim好麻烦啊.........,并且mvim不支持shift选择了呜呜并且ctrl和command建都不知道按哪个,还是gvim好

我的配置文件

"Candy?MacOS

setnumber
setruler
settabstop=4
setshiftwidth=4
setautoindent
setsmartindent
filetypeon
syntaxon
colorschemesolarized
setshowmatch
setguifont=Monaco:h20
setmouse=a
setselection=exclusive
setselectmode=mouse,key
nnoremap<F7><Esc>:w<CR>:!g++%-Wall-o
nnoremap<F8><Esc>:!./
nnoremap<F9><Esc>:w<CR>:!g++%-Wall-oa<CR>
nnoremap<F10><Esc>:!./a<CR>


"Candy?Windows

setnumber
setruler
settabstop=4
setshiftwidth=4
setautoindent
setsmartindent
filetypeon
syntaxon
colorschemesolarized
setshowmatch
setguifont=monaco:h16
setmouse=a
setselection=exclusive
setselectmode=mouse,key
nnoremap<F7><Esc>:w<CR>:!g++%-Wall-o
nnoremap<F8><Esc>:!
nnoremap<F9><Esc>:w<CR>:!g++%-Wall-oa<CR>
nnoremap<F10><Esc>:!a<CR>
setnohlsearch


后几个是为了方便编译(然而并不如直接在终端编译)

字体Mac上用Monaco20号(Monaco字体太漂亮了太可爱了),Windows上用16号

机房电脑的环境变量Path设置:

C:\ProgramFiles(x86)\Vim\vim80;C:\ProgramFiles(x86)\Dev-Cpp\MinGW64\bin;


命令概览:

命令前加数字N可以重复命令(通常是接下来N行/N个字符进行命令)

通常小写字母与下有关,大写字母与上有关

[附录]一些命令:


k上移;
j下移;
h左移;
l右移。
gg将光标定位到文件第一行起始位置;
G将光标定位到文件最后一行起始位置;

0数字0,左移光标到本行的开始;
$右移光标,到本行的末尾;
^      移动光标,到本行的第一
个非空字符。

 fc

 Fc

<C+u>
<C+d>

Ctrl+e往后滚动一行
Ctrl+y往前滚动一行//windows不行?





*当光标停留在一个单词上,*键会在文件内搜索该单词,并跳转到下一处;

/str1正向搜索字符串str1;
n继续搜索,找出str1字符串下次出现的位置;
N继续搜索,找出str1字符串上一次出现的位置;
?str2反向搜索字符串str2。





x删除光标所指向的当前字符;
nx删除光标所指向的前n个字符;


dd删除光标所在行,并去除空隙;
ndd删除(剪切)n行内容,并去除空隙;

d$从当前光标起删除字符直到行的结束;
d0从当前光标起删除字符直到行的开始;

dt"
→删除所有的内容,直到遇到双引号——[code]"
[/code]


d和y都可以当成两边加上范围用....(默认第一个范围是当前位置)


p小写字母p,将缓冲区的内容粘贴到光标的后面;
P大写字母P,将缓冲区的内容粘贴到光标的前面。

yy复制当前行到内存缓冲区;
nyy复制n行内容到内存缓冲区;

“+y复制1行到操作系统的粘贴板;
“+nyy复制n行到操作系统的粘贴板。




u撤消前一条命令的结果;
<C+r>      恢复命令
.重复最后一条修改正文的命令。




i在光标左侧插入正文
a在光标右侧插入正文
o在光标所在行的下一行增添新行
O在光标所在行的上一行增添新行
I在光标所在行的开头插入
A在光标所在行的末尾插入




:n将光标移到第n行



正则表达式替换:



:s/str1/str2/用字符串str2替换当前行中首次出现的字符串str1
:s/str1/str2/g用字符串str2替换当前行中所有出现的字符串str1
:%s所有行
:.,$s/str1/str2/g用字符串str2替换当前行到末尾所有出现的字符串str1
:1,$s/str1/str2/g用字符串str2替换正文中所有出现的字符串str1
:m,ns/str1/str2/g将从m行到n行的str1替换成str2





:split(可用缩写:sp)上下分屏;
:vsplit(可用缩写:vsp)左右分屏。
<C+w+w>切换
:res大小

:tabnew新标签
gtgT    标签切换




<<>>缩进




可视块

<C+v><C+q>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: