前言:
以下是我跟着老师的讲解操作跟着做了一遍,刷新了自己对编辑器使用的惯性思维,比如键盘上hjkl的移动光标它处于一行,需要你在脑中自动生成移动方向,刚开始一直转换不过来。其快捷键也具有英文语义化的感觉,无需死记硬背。当然以下对于小白来说目前够用了。过后还需要使用经验的补充。
一、vim介绍
- linux自带
- 不需要鼠标,不用来回切换,速度快
- 快捷键特别方便
- 支持宏、插件,可以自己把vim配成一个IDE(集成开发环境)
1、安装和配置
切换bash和zsh
- 切换bash:
chsh -s /bin/bash
- 切换zsh:
chsh -s /bin/zsh
(1)window——安装git bash——使用vim
(2)mac——安装iterm2——shell页面下安装vim
$ ~ vim
2、基本操作
(1)如何退出
按ESC
——依次输入想输入的内容——:wq
(或 :q!
)
(2)如何在iterm2阅读vim教程
~ vimtutor
(enter)
(3)vim基本单词的教学
-> ~ quit 退出
-> ~ write/read 读/写
-> ~ yank (copy) 拽
-> ~ paste 粘贴
-> ~ delete 删除
-> ~ change 改变
-> ~ line 一行
-> ~ find 查找
-> ~ word 单词
-> ~ forward/backward 向前/向后
-> ~ up/down 往上/往下
-> ~ i (insert/append) 插入进入编辑
-> ~ u (undo) 撤销
3、vim的命令
注: 快捷键,除了编辑模式以外,都是正常模式+英文字符的vim操作
移动光标命令
光标编辑模式内移动,既可用箭头键,也可用h
j
k
l
字母键 h
(左移) j
(下行)k
(上行) l
(右移)
- 另起一行:
o
键
- 单个标签整体移动
tab
键
(编辑模式下的)插入(添加)命令:
insert
i
键 ——在选中字的左边(前面)插入
a
键 ——在选中字的右边(后面)插入&
shift+I
键 ——在行首输入
A
键/shift+a
键 ——在行尾的最后输入
实现模式切换命令
i
键—— insert模式 (编辑模式) ,启动插入模式
Esc
键 ——普通模式(normal模式),退出/恢复正常模式
:
键 —— 冒号模式(命令模式)
v
键 —— visual模式(编辑选区模式)
复制粘贴命令
- 块状选定删除
选定:v+hjkl
移动光标停在欲删除的第一个字符
+j
删除:s
- 部分选定:
visual
v+hjkl
光标移动键——上下左右移动选定
- 部分选定用的删除
d
键 (选定之后删除)
- 选定修改
c
键 (选定后直接加上修改内容)
- 选定拷贝 :
yard
y
键 (选定后复制至变量中去)
- 拷贝后粘贴:
parse
p
键 + 当前光标往后粘贴
P
键 + 当前光标往前粘贴
-保存文件:write
:w
(enter回车)——保存文件
退出:
quit
:q!
(enter回车) ——(放弃所有改动)强制退出&
:wq
(enter回车)——(保存所有改动)保存退出
翻页:
up/down
ctrl+U
—— 往上半页翻
ctrl+D
—— 往上半页翻
删除类命令:delete(很灵活)
x
键 ——删除当前光标下字
dd
键 —— 删除当行文字(此时会进入一个变量)
3dd
键 ——删除三行
- 次数 X
delete a word
dw
键 ——(往后)删除一个单词
d 2 w
键 ——(当前光标下往后)删除2个单词
delete backward
db
键 —— (往前)删除一个单词
delete in/at
符号或符号名
d i (
——把括号里面内容删除
d i {
——把花括号里面函数删除
d a (
——连同括号一起删除
delete in tag
d i t
——把标签内的内容删除
修改命令:
change
change in tag
c i t
——修改标签内的内容,同时开启编辑模式
-change a word
c w
——修改内容
调至指定行
8 j
——跳转至第8行的指定行
撤销:
undo
u
键
把刚才做的再做一遍:
redo
ctrl+r
键
三、安装插件
1、配置.vimrc文件
(1)进入终端 创建文件
~ touch 1.txt
进入vim
~ vim 1.txt
修改文件(重命名文件)
~ mv 1.txt 1.html
进入
~ vi 2.html
(进入编辑模式)i键(底部显示--INSERT--
)
(2)安装vimrc文件
退出终端:
~ :wq
安装插件:
进入:https://gist.github.com/FrankFang/a6dc0886d6895c088225d7c61b954e69
Raw
键——复制网址:https://gist.githubusercontent.com/FrankFang/a6dc0886d6895c088225d7c61b954e69/raw/4855205d90fe739067a7ee4016f010ac1009d944/simple-vimrc
回到终端:
第一步:curl 这个网址
$ curl https://gist.githubusercontent.com/FrankFang/a6dc0886d6895c088225d7c61b954e69/raw/4855205d90fe739067a7ee4016f010ac1009d944/simple-vimrc
第二步:重定向安装vimrc文件
$ curl https://gist.githubusercontent.com/FrankFang/a6dc0886d6895c088225d7c61b954e69/raw/4855205d90fe739067a7ee4016f010ac1009d944/simple-vimrc >/. vimrc
第三步:进入vimrc文件
~ vi ~/.vimrc
退出 ~ :q
第四步:
~vi 2.html
此时,进入2.html之后,发现代码不一样:
- 配色不一样
- tab键的空格不一样
(3)终端内做一些事情
复制
v+光标移动hjkl+y
——复制
实现真正能到浏览器粘贴的文本键:
v+hjkl键+空格+y
到浏览器粘贴:
ctrl+v
2、安装管理插件的插件vimplug
(1)安装插件:vim-plug
~ curl -fLo ~/.vim/autoload/plug.vim--create-dirs\https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
(2)使用
编辑
.vimrc
。
进入终端,打开.vimrc
~ vi ~/.vimrc
分别粘贴 vim-plug 里两行命令,在.vimrc文件中分别放置
call plug#begin('~/.vim/plugged')
call plug#end()
保存退出
:wq
重进
~ vi ~/.vimrc
3、配置创建html快捷写法的插件emmet
安装插件:vim-emmet
选2中的终端操作:
进入.vimrc
配置文件中,直接输入:Plug '插件名字'
~ Plug 'mattn/emmet-vim'
保存退出
:wq
重进
~ vi ~/.vimrc
安装插件并回车(enter)运行
:PlugInstall
出现安装成功:
退出:quitall
:qa
进入2.html
~ vi 2.html
(如有原先内容可快捷删除)
使用插件
html:5 ctrl+y ,
出现标准的html文档,如图:
退出
:q
4、其他快捷键配置
(1)替换html快捷键写法的属性:
如ctrl+y
替换成ctrl+z
(从文档中获取新属性:vim-emmet)
进入.vimrc配置文件,在空格处添加
let g:user_emmet_leader_key='
保存退出
:wq
进入 2.html
~vi 2.html
使用替换后的快捷键ctrl+z
html:5 ctrl+z ,
(2)其他配置查看文档:https://github.com/FrankFang/dot-files/blob/master/vimrc
这里选择添加文档中的可改变html快捷属性的几个新属性
imap
nmap
vmap
续4(1)中的终端操作,退出
:q
编辑
.vimrc
。进入.vimrc
~ vi ~/.vimrc
在空格行处随意添加所改变的快捷键属性
imap
nmap
vmap
保存退出
:wq
再次进入 2.html
~ vi 2.html
(如果原先有内容先快捷删除)
使用已改变的html快捷键属性的写法:
html:5 ctrl+y
如何使用emmet插件总结:查相关文档(如emmet插件)看相关属性配置命令方法
~ vi ~/.vimrc 添加属性配置
~ vi 2.html 测试新属性效果
5、html文件中vim快捷键使用
(1)多行同时编辑
如在 2.html操作演示
ul>li{导航$}*10
回到正常模式
Esc
键,A
键,ctrl+y
,出现:
- 导航1
- 导航2
- 导航3
- 导航4
- 导航5
- 导航6
- 导航7
- 导航8
- 导航9
- 导航10
复制代码
切换编辑模式:
i
键
选定左边所有:li
ctrl+v+j
(下移),松开ctrl+v
,方向键→键
删除:
s
键
在第一个li标签上修改为:
div
切换正常模式:
按下ESC
键,则会多行同时改变标签名字
(2)复制一行并将其他行移到其他地方
正常模式下:
第一步:dd
键——删除一行,如A行
第二步:p
键——将删除的A
行对准要粘贴的地方的前一行(假设:Y
行)进行操作粘贴,即会在Y行后面粘贴上
(3)多个需求
A、如何在多行文本中各行的指定位置插入同样的字符串
创建js文件
退出,创建新文件
:q
~ touch main.js
进入main.js
~ vi main.js
编辑这个js文件,进入i的编辑模式,打以下代码:
function (p1){
console.log(p1)
p2 = p1+1
p3 = p1+2
return p1
}
复制代码
B、如何将所有的p1改为p0
进入
esc
正常模式
开始录制片段:
q a
键——底部出现recording(a代表a事件)
删除:
xx
键——删除两项
进入编辑模式:
i
键——输入修改的内容
回到正常模式:
esc
键
结束录制:
q
键
在需要修改的地方播放刚才录制的事件:
@ a
键
C、把一个单词变成另一个单词
esc正常模式下, 光标移动到单词的第一个字符:
c w
键——删选该单词
(同步)此时处于i编辑模式可以直接编辑:
输入新单词:(如A词)
切换esc正常模式, 再到另一个单词下替换刚才新单词 :A词
.
键 (此时就出现A词)