Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vim 基础使用 #15

Open
HarleyWang93 opened this issue Apr 8, 2018 · 0 comments
Open

Vim 基础使用 #15

HarleyWang93 opened this issue Apr 8, 2018 · 0 comments

Comments

@HarleyWang93
Copy link
Owner

Vim 是什么?

  • Vim 是从 vi 发展出来的一个高效率的文本编辑器,在程序员中被广泛使用,有很多支持程序员们更快更好写代码的强大功能。

为什么要学习使用 Vim?

  • 作为一个程序员,不管是前端还是后端,工作中基本上都要跟服务器打交道,而现在服务器里面运行的操作系统基本上都是 Linux。
  • 当你远程跟服务器通信的时候,基本上都要通过终端来跟服务器建立连接。
  • 当你要修改服务器的某个配置文件的时候,在一个黑漆漆的终端里,你能用的几乎只有 Vim。不会使用 Vim,就没办法工作。

如何学习使用 Vim?

  • 学习任何东西都要循序渐进,不要想一口吃成个胖子。现在很多教程上来就列一堆快捷键,基本上看几眼就放弃了。
  • 刚开始只需要学习一些最基本的操作,后面随着代码写的越来越多,进阶的操作每次练一两个,慢慢也就会了,很简单。
  • 工具是拿来用的,不要让它成为一个负担!

新手最大的问题

  • 大小写看错
  • 空格写漏
  • 把多个命令当成一个命令

安装和配置

  • Windows 要安装 Git Bash
  • Linux 无需安装
  • macos 无需安装

基础使用

Vim 的两种模式:编辑模式&命令模式

  • 输入vim a.md 初始进入编辑器命令模式
    注意 vima.md 之间有一个空格
  • i 进入编辑模式
  • 键盘左上角 esc 进入命令模式
  • :wq 保存退出
  • :q! 不保存强制退出

常见的文本操作

按键 功能
h或← 光标左移
l或→ 光标右移
k或↑ 光标上移
j或↓ 光标下移
gg 快速定位到文本开头
G(shift+g) 快速定位到文本最后一段
0或home 快速定位到当前段首
$或end 快速定位到当前段首
Ctrl+f 向下翻一页
Ctrl+b 向上翻一页
Ctrl+d 向下翻半页
Ctrl+u 向上翻一页
/string 查找文本中光标位置下方的string字符串,如要查找kabc则直接输入/kabc即可
?string 查找文本中光标位置上方的string字符串,如要查找kabc则直接输入?kabc即可
yy 复制光标所在的段落
y0 复制光标位置到段首的所有字符
y$ 复制光标位置到段尾的所有字符
nyy 从光标位置向下复制n段,包含光标所在的段落
ygg 复制光标位置所在段落到文本开头的所有内容
yG 复制光标位置所在段落到文本结尾的所有内容
p 将复制的内容粘贴为光标所在段落的下一段
P 将复制的内容粘贴为光标所在段落的上一段
dd 删除光标所在的段落
d0 删除光标位置到段首的所有字符
d$ 删除光标位置到段尾的所有字符
dgg 删除光标位置所在段落到文本开头的所有内容
dG 删除光标位置所在段落到文本结尾的所有内容
ndd 从光标位置向下删除n段,包含光标所在的段落
u 撤销上一个操作
Ctrl+r 重复上一个操作
:w 保存数据
:w! 保存时强制写入数据,不管文件是否为只读文件
) 移至下一个句子(sentence)首 (sentence 是以 . ! ? 为区格)
( 移至上一个句子(sentence)首
} 移至下一个段落(paragraph)首 (paragraph 是以空白行为区格)
{ 移至上一个段落(paragraph)首
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant