Vim 是什么?
- Vim是从vi发展出来的一个文本编辑器。 代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。 和Emacs并列成为类Unix系统用户最喜欢的编辑器
使用 vim 编辑文件
- 进入 vim:终端输入
vim
或者vi
- 比如编译桌面上 1.txt 文件,终端在桌面路径下输入
vim 1.txt
- 比如编译桌面上 1.txt 文件,终端在桌面路径下输入
- 如何退出 vim
- 按一下
ESC
(多次按没关系),确保处于正常模式 - 依次按下
:wq
,回车(w 是写入 write,q 是离开 quit,这里意思就是保存并退出)
- 按一下
- 如何输入
-
i
,此时我们会发现窗口底部提示栏出现 INSERT,此时我们就可以输入了
-
- 如何学习 vim
- 终端直接输入
vimtutor
,会进入教程
- 终端直接输入
第一讲小结
1. 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。
h (左移) j (下行) k (上行) l (右移)
2. 欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车>
3. 欲退出 Vim 编辑器,请输入 <ESC> :q! <回车> 放弃所有改动。
或者输入 <ESC> :wq <回车> 保存改动。
4. 在正常模式下删除光标所在位置的字符,请按: x
5. 欲插入或添加文本,请输入:
i 输入欲插入文本 <ESC> 在光标前插入文本
A 输入欲添加文本 <ESC> 在一行后添加文本
特别提示:按下 <ESC> 键会回到正常模式或者撤消一个不想输入或部分完整的命令
第二讲小结
1. 欲从当前光标删除至下一个单词,请输入:dw
2. 欲从当前光标删除至当前行末尾,请输入:d$
3. 欲删除整行,请输入:dd
4. 欲重复一个动作,请在它前面加上一个数字:2w
5. 在正常模式下修改命令的格式是:
operator [number] motion
其中:
operator - 操作符,代表要做的事情,比如 d 代表删除(delete)
[number] - 可以附加的数字,代表动作重复的次数
motion - 动作,代表在所操作的文本上的移动,例如 w 代表单词(word),
$ 代表行末等等。
6. 欲移动光标到行首,请按数字0键:0
7. 欲撤消以前的操作,请输入:u (小写的u)
欲撤消在一行中所做的改动,请输入:U (大写的U)
欲撤消以前的撤消命令,恢复以前的操作结果,请输入:CTRL-R
第三讲小结
1. 要重新置入已经删除的文本内容,请按小写字母 p 键。该操作可以将已删除的文本内容置于光标之后。
如果最后一次删除的是一个整行,那么该行将置于当前光标所在行的下一行。
2. 要替换光标所在位置的字符,请输入小写的 r 和要替换掉原位置字符的新字符即可。
3. 更改类命令允许改变从当前光标所在位置直到动作指示的位置中间的文本。
比如输入 ce 可以替换当前光标到单词的末尾的内容;输入 c$ 可以替换当前光标到行末的内容。
注意:ce 命令不仅仅是删除了一个单词,也同时进入插入模式了
4. 更改类命令的格式是:
c [number] motion
第四讲小结
1. CTRL-G 用于显示当前光标所在位置和文件状态信息。
G 用于将光标跳转至文件最后一行。
先敲入一个行号然后输入大写 G 则是将光标移动至该行号代表的行。
gg 用于将光标跳转至文件第一行。
2. 输入 / 然后紧随一个字符串是在当前所编辑的文档中正向查找该字符串。
输入 ? 然后紧随一个字符串则是在当前所编辑的文档中反向查找该字符串。
完成一次查找之后按 n 键是重复上一次的命令,可在同一方向上查
找下一个匹配字符串所在;或者按大写 N 向相反方向查找下一匹配字符串所在。
CTRL-O 跳转回较旧的位置,CTRL-I 则带我们到较新的位置。
3. 如果光标当前位置是括号(、)、[、]、{、},按 % 会将光标移动到配对的括号上。
4. 在一行内替换头一个字符串 old 为新的字符串 new,请输入 :s/old/new
在一行内替换所有的字符串 old 为新的字符串 new,请输入 :s/old/new/g
在两行内替换所有的字符串 old 为新的字符串 new,请输入 :#,#s/old/new/g(其中 #,# 代表的是替换操作的若干行中
首尾两行的行号)
在文件内替换所有的字符串 old 为新的字符串 new,请输入 :%s/old/new/g
进行全文替换时询问用户确认每个替换需添加 c 标志 :%s/old/new/gc
第五讲小结
1. :!command 用于执行一个外部命令 command。
看一些实际例子:
(MS-DOS) (Unix)
:!dir :!ls - 用于显示当前目录的内容。
:!del FILENAME :!rm FILENAME - 用于删除名为 FILENAME 的文件。
2. :w FILENAME 可将当前 VIM 中正在编辑的文件保存到名为 FILENAME 的文件中。
3. v motion :w FILENAME 可将当前编辑文件中可视模式下选中的内容保存到文件 FILENAME 中。
4. :r FILENAME 可提取磁盘文件 FILENAME 并将其插入到当前文件的光标位置后面。
5. :r !dir 可以读取 dir 命令的输出并将其放置到当前文件的光标位置后面。
第六讲小结
1. 输入小写的 o 可以在光标下方打开新的一行并进入插入模式。
输入大写的 O 可以在光标上方打开新的一行。
2. 输入小写的 a 可以在光标所在位置之后插入文本。
输入大写的 A 可以在光标所在行的行末之后插入文本。
3. e 命令可以使光标移动到单词末尾。
4. 操作符 y 复制文本,p 粘贴先前复制的文本。
5. 输入大写的 R 将进入替换模式,直至按 <ESC> 键回到正常模式。
6. 输入 :set xxx 可以设置 xxx 选项。一些有用的选项如下:
'ic' 'ignorecase' 查找时忽略字母大小写
'is' 'incsearch' 查找短语时显示部分匹配
'hls' 'hlsearch' 高亮显示所有的匹配短语
选项名可以用完整版本,也可以用缩略版本。
7. 在选项前加上 no 可以关闭选项: :set noic
第七讲小结
1. 输入 :help 或者按 <F1> 键或 <Help> 键可以打开帮助窗口。
2. 输入 :help cmd 可以找到关于 cmd 命令的帮助。
3. 输入 CTRL-W CTRL-W 可以在窗口之间跳转。
4. 输入 :q 以关闭帮助窗口
5. 可以创建一个 vimrc 启动脚本文件用来保存偏好设置。
6. 当输入 : 命令时,按 CTRL-D 可以查看可能的补全结果。
按 <TAB> 可以使用一个补全。
什么是 ~/.bashrc
就是一个文件,bash 会在启动时运行 ~/.bashrc 里面的内容
添加 alias
在 ~/.bashrc 里面添加
alias xxx='yyy'
然后运行
source ~/.bashrc
如何使用 z
z 能保存我们去过的路径,使用的时候只需要模糊输入就可以了
- 下载 z.sh
- 在 ~/.bashrc 里面加入
source /path/to/z.sh
source ~/.bashrc
bash 脚本
在桌面路径下,创建 show.sh 文件,输入 touch show.sh && ls -al show.sh,输出
-rw-r--r-- 1 xxx staff 0 7 5 15:06 show.sh
我们可以看到权限,只能读(read)和写(write),并不能执行(execute)
进一步验证,输入 ./show.sh && echo 'success',输出
-bash: ./show.sh: Permission denied
提高权限,输入 chmod +x show.sh && ls -al show.sh
-rwxr-xr-x 1 xxx staff 0 7 5 15:06 show.sh
输入 ./show.sh && echo 'success',输出
success
要学会使用 Google 搜索,
比如,获取脚本的参数,搜索:bash script get first augument
终端输入 vi show.sh,打开 show.sh,通过 i 输入,echo "$1 $2 $3",:wq 回车
终端输入 ./show.sh 1 2 3,输出
1 2 3
这样参数就拿到手了
显示文件内容,搜索:bash show file content,得知使用 cat filename
还可以使用 if else 语句
终端输入 vi show.sh,打开 show.sh,通过 i 输入
if [ ! -f "$1" ]; then
echo "$1 不存在"
else
cat $1
fi
假设桌面上存在 1.txt文件,内容为 hello world,
在桌面路径下,输入 ./show.sh ./1.txt,将会输出文件内容,输出
hello world