mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
Merge remote-tracking branch 'LCTT/master'
This commit is contained in:
commit
78b32f6555
@ -1,161 +0,0 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (wxy)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (5 ways to level up your Vim skills)
|
||||
[#]: via: (https://opensource.com/article/20/3/vim-skills)
|
||||
[#]: author: (Detlef Johnson https://opensource.com/users/deckart)
|
||||
|
||||
5 ways to level up your Vim skills
|
||||
======
|
||||
Kick your text editor up a notch with a few fun tricks.
|
||||
![Computer keyboard typing][1]
|
||||
|
||||
Vim is one of the most popular text editors out there, so it is definitely worth taking time to learn how to use it. If the only things you learn how to do with the ubiquitous [Vi(m)][2] command-line text editor are to open a file, enter and edit some text, save the edited files, and exit the program, you will be much better off for it.
|
||||
|
||||
Circumstances where you will find it extremely convenient to know Vim nearly always involve tasks running remote shell operations. If you regularly use secure shell:
|
||||
|
||||
|
||||
```
|
||||
`$ ssh user@hostname.provider.com`
|
||||
```
|
||||
|
||||
and work with virtual private servers (VPS) or local virtualization containers, for that matter, you could benefit greatly from strong Vim skills.
|
||||
|
||||
### Set Vim as your default text editor
|
||||
|
||||
Vim is readily available in nearly all modern Linux (or BSD) distributions at the terminal emulator shell-command prompt. Once you've defined Vim as your default editor in your user shell, then you can navigate built-in utilities like **$ man** using familiar Vim key bindings. I'll explain how to do that with both Bash and Z shell (zsh), which is now the default shell for macOS users (since Catalina).
|
||||
|
||||
#### Set Vim as default in Bash
|
||||
|
||||
Bash manages settings through a combination of dotfiles. It's most common to add your preferred editor to your **.bashrc** file in your home directory, but it can be added to **.bash_profile** as well. (Read the [GNU Bash documentation][3] to understand the difference).
|
||||
|
||||
Set Vim as your default editor by adding the following to **~/.bashrc**:
|
||||
|
||||
|
||||
```
|
||||
# set default editor to Vim
|
||||
export EDITOR=vim
|
||||
```
|
||||
|
||||
A line starting with a **#** is an optional comment, which is a good way to remind yourself what a command does.
|
||||
|
||||
#### Set Vim as default in Zsh
|
||||
|
||||
Zsh is an increasingly popular terminal emulator, especially since Apple's FreeBSD-based Darwin system recently switched from Bash to zsh.
|
||||
|
||||
The zsh dotfile parallels Bash's, so you can choose between **~/.zshrc** or **~/.zprofile**. See [the zsh documentation][4] for details on when to use which one.
|
||||
|
||||
Set it as default with:
|
||||
|
||||
|
||||
```
|
||||
# set default editor to Vim
|
||||
export EDITOR=vim
|
||||
```
|
||||
|
||||
### Optimize your Vim configuration
|
||||
|
||||
Vim, much like a terminal emulator shell, uses dotfiles to set personal preferences. If you spotted the pattern, you might have guessed it's **~/.vimrc**.
|
||||
|
||||
The first setting you may want to change is switching legacy Vi compatibility mode to Off. Since Vim is a superset of Vi, everything in Vi is available and vastly improved in Vim, and you get many advanced features. The latest version (8.2) allows you to open a terminal as a subprocess shell running in a split window.
|
||||
|
||||
As an aside, setting legacy compatibility off might not seem like it's doing anything ([and in fact, it might not be][5]). Vim automatically switches the mode to Off by implication when it encounters a **.vimrc** file. It can still be important at times to explicitly turn it off. The shorthand "nocp" is synonymous with "nocompatible," which also works. There are many "[TIMTOWTDI][6]" conveniences for switching preferences as you work.
|
||||
|
||||
Lines that begin with **"** are comments in **.vimrc** syntax (just like **#** in **.bashrc** files). They can help you remember things like why you chose a cryptic setting name.
|
||||
|
||||
To turn off Vi compatibility, add the following to your **~/.vimrc** file:
|
||||
|
||||
|
||||
```
|
||||
" ensure that legacy compatibility mode is off
|
||||
" documentation: <http://vimdoc.sourceforge.net/htmldoc/options.html\#'compatible>'
|
||||
set nocp
|
||||
```
|
||||
|
||||
### Understand modes
|
||||
|
||||
The notion of Vim's "modes" is very important to learn about, especially the difference between the very distinct **Normal** and **Insert** modes. Confusion about modes is what trips up most new users. Modes aren't unique to Vim, nor were they introduced by Vi. Command mode is so old that it predates the invention of [copy and paste][7] functionality in the 1970s.
|
||||
|
||||
#### Important modes
|
||||
|
||||
Vim depends on different modes to define keyboard-stroke behavior. The important modes to know are:
|
||||
|
||||
* **Normal mode**: Default mode used primarily for navigation and opening files
|
||||
* **Insert mode** (includes Replace): Where Vim allows for text input to an open file
|
||||
* **Visual mode**: Where Vim acts similar to mouse-based input, such as copying, editing, replacing, and more
|
||||
* **Command mode** (including Line, Ex command, and Last-line mode): A powerful way to do more in Vim
|
||||
|
||||
|
||||
|
||||
Each mode has a great deal to explore. Use [Vimtutor][8] (**$ vimtutor**) to interactively learn about movement, modes, and running Ex commands in "Last Line" mode. Some indispensable productivity operators include:
|
||||
|
||||
**:E** | Opens explorer for locating files and directories
|
||||
---|---
|
||||
**.** | Repeats the last edit action
|
||||
**;** | Repeats the last motion or movement forward
|
||||
**,** | Repeats the last motion or movement backward
|
||||
**/** | Searches document forward
|
||||
**?** | Searches document backward
|
||||
***** | Finds next occurrence of the word under the cursor
|
||||
**#** | Finds the previous occurrence of the word under the cursor
|
||||
**~** | Toggles case
|
||||
**%** | Toggles between opening and closing **()**, **[]**, and **{}**; highly useful for coding
|
||||
**z=** | Makes spelling suggestions
|
||||
|
||||
### Play Vim like a piano
|
||||
|
||||
While it's important to commit Vim's operator "language" to memory, the challenge to gaining mastery is to learn to think like a musician and combine operators and movements into "key chords in harmony" so that you can play Vim like a piano. That's where the power of text manipulation with Vim rivals that of the other notable command-line editor, Emacs. (While one of these editors will wear down your **Esc** key, using the other will wear down your **Ctrl** key.)
|
||||
|
||||
When describing key chords, it's conventional in Vim to designate the **Ctrl** key using the capital letter C, followed by a hyphen (**C-**). It's not universal, but I will follow that convention from here onward and clarify when there is any potential for confusion.
|
||||
|
||||
If you type long lines in Vim, you'll want to set it to wrap your text. To start personalizing Vim for the way you work, think about that setting: How would you like Vim to handle text wrapping by default when it starts? On or off? I like it turned off and leave it out of the runtime commands file. When I want text to wrap, I simply set it in command-line mode with **:set wrap**.
|
||||
|
||||
There's nothing wrong with having Vim set to wrap text by default. It's simply a matter of preference—which can change over time. The same goes for handling paste, code language indent syntax, and the **Tab** key (tabs or spaces? and how many spaces then? Dive into these options [here][9]). All these options for default behavior are entirely configurable and changeable in real time as you work with command-line mode operations.
|
||||
|
||||
You will find many suggestions for setting Vim defaults in community forums, on Vim wikis, and in articles (like this one). Setting preferences for your personal computing environment should be fairly familiar to you, and Vim is no different. I highly recommend that you start by making very small changes to your settings, and make additional changes slowly so that you can easily revert settings. This way, you might avoid the use of plugins for years—or entirely.
|
||||
|
||||
### Splits, tabs, and terminals in Vim 8.2
|
||||
|
||||
There are two ways to split your working files into different views: they can appear side-by-side, or you can switch between them with full (window) screens using application tabs. These changes to your application window are initiated from command-line mode, which requires a colon (**:**) to call up the prompt.
|
||||
|
||||
Each window split can host a file for editing, and you can arrange tabs to switch between additional files as much as you like. There is limited screen space for splits, so tabs are handy when you want to split more screens. How you decide to work is purely a matter of preference. To split a window horizontally, use **:sp**, and use **:vs** for vertical splits.
|
||||
|
||||
As of [Vim 8.2][10], you can open a terminal shell sub-process in a vertical split with **:vert term** to run operations on the command line right alongside your code. You need to type **exit** to close your terminal process, just like you would end a shell session, but you close splits and tabs the same way you would close any ordinary Vim window, with **:q**.
|
||||
|
||||
To initialize a tab, use a special edit command: **:tabedit**, which automatically switches you to the new open tab. If you give the command a file name as an argument, that file will open for editing. If you neglect to give it a file name as an argument, the command-line mode edit **:e filename.txt** works just like it would in any ordinary Vim window. Navigate tabs with the next (**:tabn**) and previous (**:tabp**) commands.
|
||||
|
||||
To use splits, you need to know how to navigate among them using the key-chord combination **C-w** plus a movement key in the direction you want to move, such as left (**h**), down (**j**), up (**k**), or right (**l**). When you want to learn more key chords specific to splits and tabs, read the **:help split** and **:help tabpage** for the Vim manual entries.
|
||||
|
||||
### Get help
|
||||
|
||||
While the Vim manual is referenced in Vimtutor, opening Vim help with **:help** will let you spend time with the editor on your own and get more productive without wholly relying on articles like this one. Experience is key to Vim mastery. The experience contributes to your overall computing intuition since so much of what has gone into Vim is drawn from the Unix universe.
|
||||
|
||||
Have fun exploring the beauty of Vim, and share any questions you have in the comments.
|
||||
|
||||
Want to become a master of text editing in the terminal, and beyond? These tips for getting started...
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/3/vim-skills
|
||||
|
||||
作者:[Detlef Johnson][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/deckart
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/keyboaord_enter_writing_documentation.jpg?itok=kKrnXc5h (Computer keyboard typing)
|
||||
[2]: https://www.vim.org/
|
||||
[3]: https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
|
||||
[4]: http://zsh.sourceforge.net/Intro/intro_3.html
|
||||
[5]: http://vimdoc.sourceforge.net/htmldoc/starting.html#compatible-default
|
||||
[6]: https://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it
|
||||
[7]: https://www.npr.org/2020/02/22/808404858/remembering-the-pioneer-behind-your-computers-cut-copy-and-paste-functions
|
||||
[8]: http://www2.geog.ucl.ac.uk/~plewis/teaching/unix/vimtutor
|
||||
[9]: https://opensource.com/article/18/9/vi-editor-productivity-powerhouse
|
||||
[10]: https://www.vim.org/vim-8.2-released.php
|
155
translated/tech/20200331 5 ways to level up your Vim skills.md
Normal file
155
translated/tech/20200331 5 ways to level up your Vim skills.md
Normal file
@ -0,0 +1,155 @@
|
||||
[#]: collector: (lujun9972)
|
||||
[#]: translator: (wxy)
|
||||
[#]: reviewer: ( )
|
||||
[#]: publisher: ( )
|
||||
[#]: url: ( )
|
||||
[#]: subject: (5 ways to level up your Vim skills)
|
||||
[#]: via: (https://opensource.com/article/20/3/vim-skills)
|
||||
[#]: author: (Detlef Johnson https://opensource.com/users/deckart)
|
||||
|
||||
提升你的 Vim 技能的 5 个方法
|
||||
======
|
||||
|
||||
> 通过一些有趣的技巧使你的文本编辑器更上一层楼。
|
||||
|
||||
![Computer keyboard typing][1]
|
||||
|
||||
Vim 是最受欢迎的文本编辑器之一,因此绝对值得花时间学习如何使用它。如果你使用这个无处不在的 [Vi(m)][2] 命令行文本编辑器来做的只是打开文件、输入和编辑一些文本、保存编辑的文件并退出程序,那么你还有很大的提示空间、。
|
||||
|
||||
在某些情况下你会发现,使用 Vim 非常方便的的场景几乎总是涉及到运行远程 Shell 操作的任务。如果你时不时地使用 ssh,比如
|
||||
|
||||
```
|
||||
$ ssh user@hostname.provider.com
|
||||
```
|
||||
|
||||
并在虚拟专用服务器(VPS)或本地虚拟化容器中工作,那么就可以从这些强大的 Vim 技能中受益匪浅。
|
||||
|
||||
### 将 Vim 设置为默认的文本编辑器
|
||||
|
||||
几乎在所有现代 Linux(或 BSD)发行版中,都可以在终端仿真器的 shell 命令提示符下使用 Vim。在用户 shell 程序中将 Vim 定义为默认编辑器后,即可使用熟悉的 Vim 键绑定来浏览内置的实用程序,例如 `man`。我将说明如何使用 Bash 和 Z shell(zsh)来实现此目的,zsh 现在是 macOS 用户的默认shell(自 Catalina 起)。
|
||||
|
||||
#### 在 Bash 中将 Vim 设置为默认
|
||||
|
||||
Bash 通过点文件的组合来管理设置。将首选编辑器添加到主目录中的 `.bashrc` 文件中是最常见的,但也可以将其添加到 `.bash_profile` 中。(请阅读 [GNU Bash 文档][3]了解不同之处)。
|
||||
|
||||
通过在 `~/.bashrc` 中添加以下内容,将 Vim 设置为默认编辑器:
|
||||
|
||||
```
|
||||
# set default editor to Vim
|
||||
export EDITOR=vim
|
||||
```
|
||||
|
||||
以 `#` 开头的行是可选的注释,这是提醒自己该命令的功能的好方法。
|
||||
|
||||
#### 在 zsh 中将 Vim 设置为默认
|
||||
|
||||
zsh 是一种越来越流行的终端模拟器,尤其是自苹果的基于 FreeBSD 的 Darwin 系统最近从 Bash 切换到 zsh 以来。
|
||||
|
||||
zsh 点文件与 Bash 的文件相当,因此你可以在 `~/.zshrc` 或 `~/.zprofile` 之间进行选择。有关何时使用哪一个的详细信息,请参见 [zsh文档][4]。
|
||||
|
||||
将其设置为默认:
|
||||
|
||||
```
|
||||
# set default editor to Vim
|
||||
export EDITOR=vim
|
||||
```
|
||||
|
||||
### 优化 Vim 配置
|
||||
|
||||
Vim 很像终端仿真器外壳,它使用点文件来设置个人偏好。如果发现该模式,则可能已经猜到它是 `~/.vimrc`。
|
||||
|
||||
你可能要更改的第一个设置是将对旧 Vi 兼容模式切换为“关”。由于 Vim 是 Vi 的超集,因此 Vi 中的所有功能都可用,并在 Vim 中进行了很大的改进,你可以获得许多高级功能。最新版本(8.2)允许你在拆分的窗口中打开终端运行一个子进程 shell 程序。
|
||||
|
||||
顺便说一句,关闭旧版兼容性似乎没有做什么事情([事实上,可能不是][5])。当遇到一个 `.vimrc` 文件时,Vim 会自动将该模式切换为关闭。但有时将其明确关闭仍然很重要。缩写 `nocp` 是 `nocompatible` 的同义词,也可以使用它。[条条大道通罗马][6],切换首选项有很多方式。
|
||||
|
||||
在 `.vimrc` 语法中, 以 `"` 开头的行是注释(就像 `.bashrc` 文件中的 `#` 一样),这些注释可以帮助你记住诸如为何选择一个隐秘的设置名称之类的内容。
|
||||
|
||||
要关闭 Vi 兼容性,请将以下内容添加到 `~/.vimrc` 文件中:
|
||||
|
||||
```
|
||||
" ensure that legacy compatibility mode is off
|
||||
" documentation: <http://vimdoc.sourceforge.net/htmldoc/options.html\#'compatible>'
|
||||
set nocp
|
||||
```
|
||||
|
||||
### 理解模式
|
||||
|
||||
Vim的 “模式”概念是非常重要的,尤其是“正常模式”和“插入模式”之间的区别。对模式的混淆是大多数新用户的困扰。模式并不是 Vim 所独有的,甚至也不是 Vi 所引入的。命令模式是如此的古老,以至于它比 70 年代的[复制和粘贴][7]功能的发明还要早。
|
||||
|
||||
#### 重要的模式
|
||||
|
||||
Vim 依赖于不同的模式来定义键盘的敲击行为。需要了解的重要模式有
|
||||
|
||||
* 正常模式:默认模式,主要用于导航和打开文件。
|
||||
* 插入模式(包括替换):这种模式下 Vim 允许将文本输入到打开的文件中。
|
||||
* 可视模式:Vim 的行为类似于基于鼠标的输入方式,如复制、编辑、替换等。
|
||||
* 命令模式(包括行模式、Ex 命令模式和末行模式):在 Vim 中做更多事情的强大方法。
|
||||
|
||||
每种模式都有很多值得探索的地方。使用 [Vimtutor][8](`vimtutor`)可以交互式地学习移动光标、模式和在末行模式下运行 Ex 命令。一些不可缺少的生产力操作符包括:
|
||||
|
||||
`:E` | 打开资源管理器,用于定位文件和目录。
|
||||
--- | ---
|
||||
`.` | 重复上次的编辑操作。
|
||||
`;` | 向前重复上一次的动作或移动
|
||||
`,` | 向后重复上一次的动作或移动。
|
||||
`/` | 向前搜索文档。
|
||||
`?` | 向后搜索文档。
|
||||
`*` | 查找光标所在处的单词的下一个出现的地方。
|
||||
`#` | 查找光标所在处的单词的上一次出现的地方。
|
||||
`~` | 切换大小写。
|
||||
`%` | 在打开和关闭的 `()`、`[]` 和 `{}` 之间切换;对编码非常有用。
|
||||
`z=` | 提出拼写建议。
|
||||
|
||||
### 像钢琴一样弹奏 Vim
|
||||
|
||||
把 Vim 的操作符“语言”记在记忆中是很重要的,但要想掌握它,难点在于学会像音乐家一样思考,把操作符和动作组合成“和声和弦”,这样你就可以像弹钢琴一样弹奏 Vim。这就是 Vim 的文本操作能力可以与另一个著名的命令行编辑器 Emacs 相媲美的地方。(虽然其中一个编辑器会让磨损掉你的 `Esc` 键,而另一个编辑器会让你的 `Ctrl` 键磨损掉。)
|
||||
|
||||
在描述和弦时,Vim 中的传统做法是用大写字母 `C` 来指代 `Ctrl` 键,后面加上一个连字符(`C-`)。这并不是通用的,但我将从这里开始遵循这一惯例,并在有可能引起混淆的时候加以说明。
|
||||
|
||||
如果你在 Vim 中键入长行,你会想把它设置成可以换行你的文字。想要根据你的工作方式对 Vim 进行个性化设置,请考虑一下这个设置:当 Vim 启动时,你希望 Vim 默认情况下如何处理文本换行?开着还是关着?我喜欢将其关闭,并在运行时用命令打开它。当我想让文本换行时,我只需在命令行模式下用 `:set wrap` 设置即可。
|
||||
|
||||
让 Vim 设置为默认文字换行并没有什么问题。这只是一个偏好的问题 —— 它可能随着时间的推移而改变。同样你也可以控制粘贴、代码语言缩进语法和 `Tab` 键的设置(制表符还是空格?多少个空格?可也在[这里][9]深入研究这些选项)。所有这些默认行为的选项都是完全可配置的,并且在你使用命令行模式操作时可以实时更改。
|
||||
|
||||
你会在社区论坛、Vim 维基和文章中找到很多关于设置 Vim 默认设置的建议(比如这篇文章)。为你的个人计算环境设置首选项对你来说应该相当熟悉,Vim 也不例外。我强烈建议你从对你的设置进行非常小的更改开始,慢慢地进行更多的更改,这样你就可以轻松地恢复设置。这样一来,你就可以避免使用插件好多年或完全不用。
|
||||
|
||||
### Vim 8.2中的分割、标签和终端
|
||||
|
||||
有两种方法可以将你正在处理的文件分割成不同的视图:它们可以并排显示,也可以使用应用程序标签页在全屏(窗口)中切换。这些对应用程序窗口的更改是从命令模式启动的,这需要使用冒号(`:`)来调起提示符。
|
||||
|
||||
每个分割的窗口可以容纳一个文件进行编辑,你可以通过标签页在更多的文件之间随意切换。分割的屏幕空间是有限的,所以当你想分割更多的屏幕时,标签页是很方便的。想要如何设置,纯属个人喜好的问题。要横向分割一个窗口,使用 `:sp`,垂直分割时使用 `:vs`。
|
||||
|
||||
从 [Vim 8.2][10] 开始,你可以用 `:vert term` 打开一个垂直分割的终端 shell 子进程,来在你的代码旁边在命令行进行操作。你需要键入 `exit` 来关闭你的终端进程,就像你结束一个 shell 会话一样,但你关闭这个分割的窗口和标签页的方式和关闭任何普通的 Vim 窗口一样,用 `:q` 来关闭。
|
||||
|
||||
要初始化一个标签页,请使用一个特殊的编辑命令:`:tabedit`,它会自动切换到新打开的标签页。如果你给该命令一个文件名作为参数,将会打开该文件并进行编辑。如果你忽略了给它一个文件名作为参数,可以在命令行模式下的使用编辑命令 `:e filename.txt`,就像在任何一个普通的 Vim 窗口中一样。可以使用下一个(`:tabn`)和上一个(`:tabp`)命令在标签页间导航。
|
||||
|
||||
要使用分割,你需要知道如何使用组合键 `C-w` 和你想要移动的方向的移动键,例如左(`h`)、下(`j`)、左(`k`)、右(`l`)。如果你想学习更多的组合键,请阅读 Vim 手册中的 `:help split` 和 `:help tabpage`。
|
||||
|
||||
### 获取帮助
|
||||
|
||||
虽然可以在 Vimtutor 中打开参考 Vim 手册,但用 `:help` 打开 Vim 帮助,可以让你自己把时间花在编辑器上,不用完全依赖像这样的文章,就能获得更多的成果。经验是掌握 Vim 的关键。经验有助于提高你的整体计算直觉,因为 Vim 中的很多东西都是从 Unix 宇宙中汲取的。
|
||||
|
||||
祝你在探索 Vim 之美的过程中玩得开心,有什么问题可以在评论中分享。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/20/3/vim-skills
|
||||
|
||||
作者:[Detlef Johnson][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[wxy](https://github.com/wxy)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/deckart
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/keyboaord_enter_writing_documentation.jpg?itok=kKrnXc5h (Computer keyboard typing)
|
||||
[2]: https://www.vim.org/
|
||||
[3]: https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
|
||||
[4]: http://zsh.sourceforge.net/Intro/intro_3.html
|
||||
[5]: http://vimdoc.sourceforge.net/htmldoc/starting.html#compatible-default
|
||||
[6]: https://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it
|
||||
[7]: https://www.npr.org/2020/02/22/808404858/remembering-the-pioneer-behind-your-computers-cut-copy-and-paste-functions
|
||||
[8]: http://www2.geog.ucl.ac.uk/~plewis/teaching/unix/vimtutor
|
||||
[9]: https://opensource.com/article/18/9/vi-editor-productivity-powerhouse
|
||||
[10]: https://www.vim.org/vim-8.2-released.php
|
Loading…
Reference in New Issue
Block a user