vim block vim
Vim是那里最受欢迎的文本编辑器之一,因此绝对值得花时间学习如何使用它。 如果您唯一了解使用无处不在的Vi(m)命令行文本编辑器的方法是打开文件,输入和编辑一些文本,保存编辑的文件并退出程序,那么您将获得更好的选择它。
在某些情况下,发现Vim极为方便,几乎总是涉及运行远程Shell操作的任务。 如果您定期使用安全外壳:
$ ssh user @ hostname.provider.com
并与虚拟专用服务器(VPS)或本地虚拟化容器一起使用,就可以从强大的Vim技能中受益匪浅。
将Vim设置为默认的文本编辑器
$使用熟悉的Vim键绑定的人。 我将说明如何使用Bash和Z shell(zsh)来实现此目的,zash现在是macOS用户的默认shell(自Catalina起)。在Bash中将Vim设置为默认值
Bash通过点文件的组合来管理设置。 将首选编辑器添加到主目录中的.bashrc文件中是最常见的,但也可以将其添加到.bash_profile中。 (阅读GNU Bash文档以了解不同之处)。
通过在〜/ .bashrc中添加以下内容,将Vim设置为默认编辑器:
# set default editor to Vim
export EDITOR=vim
以#开头的行是可选注释,这是提醒自己命令功能的好方法。
在Zsh中将Vim设置为默认值
Zsh是一种越来越流行的终端模拟器,尤其是自苹果基于FreeBSD的Darwin系统最近从Bash切换到zsh以来。
zsh的dotfile平行bash的,所以你可以〜/ .zshrc或〜/ .zprofile之间进行选择。 有关何时使用哪一个的详细信息,请参见zsh文档 。
将其设置为默认值:
# set default editor to Vim
export EDITOR=vim
优化您的Vim配置
Vim就像终端仿真器外壳一样,使用点文件来设置个人偏好。 如果发现该模式,您可能已经猜到它是〜/ .vimrc 。
您可能要更改的第一个设置是将旧Vi兼容模式切换为“关”。 由于Vim是Vi的超集,因此Vi中的所有功能均可用,并且Vim进行了很大的改进,您将获得许多高级功能。 最新版本(8.2)允许您打开终端作为在拆分窗口中运行的子进程外壳。
顺便说一句,关闭旧版兼容性似乎似乎没有做任何事情( 实际上,可能没有 )。 当遇到一个.vimrc文件时,Vim会自动将模式切换为“关闭”。 有时将其明确关闭仍然很重要。 缩写“ nocp”是“ nocompatible”的同义词,也可以使用。 工作时,有许多“ TIMTOWTDI ”便利用于切换首选项。
以“开头的行是.vimrc语法中的注释(就像.bashrc文件中的#一样)。它们可以帮助您记住诸如为什么选择一个隐秘的设置名称之类的内容。
要关闭Vi兼容性,请在〜/ .vimrc文件中添加以下内容:
" ensure that legacy compatibility mode is off
" documentation: http://vimdoc.sourceforge.net/htmldoc/options.html#'compatible'
set nocp
了解模式
了解Vim的“模式”的概念非常重要,尤其是非常不同的Normal和Insert模式之间的区别。 对模式的困惑是让大多数新用户不满意的原因。 模式不是Vim独有的,Vi也不引入。 命令模式非常古老,以至于早在1970年代就发明了复制和粘贴功能。
重要模式
Vim依靠不同的模式来定义键盘击键行为。 要了解的重要模式是:
- 普通模式 :默认模式,主要用于导航和打开文件
- 插入模式 (包括替换):Vim允许文本输入到打开的文件
- 可视模式 :Vim的行为类似于基于鼠标的输入,例如复制,编辑,替换等
- 命令模式 (包括Line,Ex命令和Last-line模式):一种在Vim中执行更多操作的强大方法
每种模式都有很多需要探索的地方。 使用Vimtutor ( $ vimtutor )以交互方式了解移动,模式以及在“最后一行”模式下运行Ex命令。 一些必不可少的生产力运营商包括:
:E | 打开资源管理器以查找文件和目录 |
. | 重复上一个编辑动作 |
; | 重复上一个动作或向前移动 |
, | 重复上一个动作或向后移动 |
/ | 向前搜索文件 |
? | 向后搜索文件 |
* | 查找光标下单词的下一个匹配项 |
# | 查找光标下单词的上一个匹配项 |
~ | 切换情况 |
% | 在打开和关闭() , []和{}之间切换; 对编码非常有用 |
z= | 提出拼写建议 |
像钢琴一样弹奏Vim
尽管将Vim的操作员“语言”交给记忆很重要,但要获得精通的挑战是学会像音乐家一样思考,并将操作员和动作组合成“和弦”,以便像钢琴一样弹奏Vim。 这就是使用Vim进行文本操作的能力可与其他著名的命令行编辑器Emacs媲美的地方。 (虽然其中一个编辑器会破坏您的Esc键,而其他编辑器会破坏您的Ctrl键。)
在描述键和弦时,Vim习惯上使用大写字母C,后跟连字符( C- )来指定Ctrl键。 它不是通用的,但我将从这里开始遵循该约定,并澄清何时可能出现混淆。
如果在Vim中键入长行,则需要对其进行设置以换行。 要开始根据您的工作方式个性化Vim,请考虑以下设置:默认情况下,您希望Vim如何处理自动换行? 开还是关? 我喜欢将其关闭并将其保留在运行时命令文件之外。 当我希望自动换行时,只需在命令行模式下使用:set wrap即可 。
将Vim设置为默认情况下包装文本没有错。 这只是一个偏好问题,它会随着时间而变化。 处理粘贴,代码语言缩进语法和Tab键也是如此(制表符或空格?然后有多少空格? 在这里潜入这些选项)。 当您使用命令行模式操作时,所有这些默认行为的选项都是完全可实时配置和更改的。
您可以在社区论坛,Vim Wiki和文章(如本篇文章)中找到许多设置Vim默认值的建议。 您应该非常熟悉为个人计算环境设置首选项,而Vim也不例外。 我强烈建议您首先对设置进行非常小的更改,然后慢慢进行其他更改,以便您可以轻松地还原设置。 这样,您可能会避免使用插件多年或完全避免使用插件。
Vim 8.2中的分割,制表符和终端
有两种方法可以将工作文件拆分为不同的视图:它们可以并排显示,或者可以使用应用程序选项卡在全屏(窗口)之间切换。 (:)这些更改您的应用程序窗口从命令行模式,这需要一个冒号开始调出提示。
每个窗口拆分都可以托管一个文件进行编辑,并且您可以根据需要排列选项卡以在其他文件之间切换。 分割的屏幕空间有限,因此当您想要分割更多的屏幕时,选项卡非常方便。 您决定工作的方式纯粹是偏好问题。 要水平分割窗口,请使用:sp ,并使用:vs进行垂直分割。
从Vim 8.2开始 ,您可以使用:vert术语在垂直拆分中打开终端外壳子进程,以在代码旁边与命令行一起运行操作。 您需要输入exit来关闭终端进程,就像结束shell会话一样,但是您使用:q来关闭拆分和制表符的方式与关闭任何普通Vim窗口的方式相同。
要初始化选项卡,请使用特殊的编辑命令::tabedit ,它会自动将您切换到新的打开的选项卡。 如果为命令指定文件名作为参数,则该文件将打开以进行编辑。 如果您忽略给它一个文件名作为参数,则命令行模式edit :e filename.txt的工作原理与在任何普通Vim窗口中一样。 使用下一个( :tabn )和上一个( :tabp )命令浏览选项卡。
要使用分割,您需要知道如何使用键和弦组合Cw加上要在想要移动的方向上移动的键,例如向左( h ),向下( j ),向上( k )或对( l )。 当您想了解更多特定于分割和制表符的和弦时,请阅读:help分割和:help选项卡页面以获取Vim手册条目。
得到帮助
当Vimtutor中引用了Vim手册时,使用:help打开Vim帮助将使您可以独自与编辑器在一起,并在不完全依赖此类文章的情况下提高工作效率。 经验是掌握Vim的关键。 该经验有助于您的整体计算直观性,因为进入Vim的大部分内容都来自Unix领域。
尽情探索Vim的美丽,并分享您在评论中遇到的任何问题。
vim block vim