经典笑话:
Q: 如何生成随机字符串?
A: 让一个计算机新生退出 Vim
Vim 是一种广泛使用的文本编辑器,以其强大功能和高度可定制性而闻名。然而,它也因为其不直观的命令和操作模式而臭名昭著,特别是对于初学者来说。
笑话的幽默在于,Vim 的退出命令(通常是 :q!
或 :wq
)对于新手来说并不明显,可能会导致他们在尝试退出 Vim 时随机尝试各种命令组合。因此,这里的“生成随机字符串”实际上是在说新生在尝试退出 Vim 时可能会无意中输入一连串随机的键盘字符。
这个笑话体现了程序员社区中的一种幽默,通过夸张描述一个共同的困境来达到幽默效果。这样的笑话能够让处于不同水平的程序员产生共鸣,因为几乎每个使用 Vim 的人都可能在初次使用时面临过退出的挑战。
Vim 中的模式
命令模式(Command mode)
这是 Vim 启动后默认的模式。在这个模式下,你可以使用各种键盘快捷键来执行操作,如移动光标、删除文本、复制和粘贴文本等。这些命令通常都是单个字母,或者是字母的组合。例如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| h, j, k, l:分别用来向左、向下、向上、向右移动光标。 dd:删除当前行。 yy:复制当前行。(2yy指复制两行内容) p:粘贴最近一次复制或删除的内容。(2p指粘贴两次) Ctrl+f : 向前翻页 Ctrl+f : 向前翻页 Ctrl+u : 向前翻半页 Ctrl+d : 向前翻半页 G: 跳转到文件最后一行(输入100G跳转到100行 等同于尾行模式输入:100) gg: 跳转到文件第一行 /searchtext: 查找文本 (使用n继续向下查找) (查找的时候如果要忽略大小写使用/searchtext\c) /searchtext: 查找文本 (使用n继续向上查找) (查找的时候如果要忽略大小写使用/searchtext\c) u: 等同于windows中的CTRL+Z(撤销) ^: 行首 $: 行尾
|
插入模式(Insert mode)
插入模式是用于输入文本的。在命令模式下,你可以通过一些特定的命令进入插入模式,如:
1 2 3
| i:在当前光标位置前插入。 a:在当前光标位置后插入。 o:在当前行下方新开一行,并进入插入模式。
|
这里大小写是有区分不同的功能的如图所示
当你处于插入模式时,可以直接输入文本,此时输入的任何内容都将直接添加到文本文件中。要返回命令模式,通常按 Esc
键
尾行模式(Ex mode)
尾行模式允许你输入在命令行中执行的命令,这些命令可以用于保存文件、设置选项、查找和替换文本等更复杂的操作。进入这个模式通常通过按 :
键(在命令模式下)。在命令行提示符出现后,你可以输入命令。例如:
1 2 3 4 5 6 7 8 9
| :w 保存文件。 :q 退出 Vim。 :wq 或 :x 保存文件并退出。 :/pattern 查找文本模式。 :%s/old/new/g 将文件中所有的“old”替换为“new”。(带g表示每一行全部匹配到的内容都替换,不带则指替换第一个) :1,9s/old/new/g 将文件中1-9行的“old”替换为“new”。 :set number 或者 :set nu 设置显示行号 :set nonumber 或者 set nonu 设置不显示行号 :set ic 全局忽略大小写(set ignore case)
|
完成命令输入后,按 Enter
键执行,再按 Esc
键回到命令模式。
可视模式(Visual mode)
- 这种模式允许用户选择文本块,然后可以对这些选定的文本执行命令,如复制、剪切和粘贴。
- 可视模式有三种变体:
- 可视模式(Visual mode):通过按
v
进入,可以选择连续的字符。
- 可视行模式(Visual Line mode):通过按
V
(大写V)进入,可以选择整行。
- 可视块模式(Visual Block mode):通过按
Ctrl + v
进入,可以选择一个矩形块。
选择模式(Select mode)
- 类似于其他文本编辑器中的选择操作,可以通过
gh
键进入。这种模式下,光标移动会扩展或减少选择的文本区域。
- 当文本被选定后,继续输入会替换选定的文本(与Insert模式不同,Insert模式在选定文本的前面开始插入)。
替换模式(Replace mode)
- 通过按
R
进入,可以覆盖光标所到之处的字符,而不是像插入模式那样在它们之间插入。
- 这在需要对现有文本进行修改时非常有用。
操作等待模式(Operator-pending mode)
- 这是一个比较特殊的模式,在执行需要一个运动命令(如删除、更改等)的操作符后进入。
- 例如,当你输入
d
(删除)后,Vim等待你指定要删除的文本范围,此时Vim处于操作等待模式。
注: 还有一个比较重要的文件是.vimrc 这个文件相当于配置文件,可以在其中设置一些前置内容提前加载。
例如:快捷键/颜色/字体/插件/行号/忽略大小写等。
网站上传文件
1 2 3 4 5 6 7 8 9 10 11 12
| git init
git add ./file/
git commit ./file/ -m "updata"
git remote add origin [url]
git pull --rebase origin main
git push -u origin main
|
解决方案 A,如果你想把分支命名为 master:
运行 git push -u origin master 而不是 git push -u origin main
解决方案B ,如果你想把分支命名为main:
在git push -u origin main之前运行git checkout -B main