标签 Vim 下的文章

我使用 Vim 来写小说。我是这样配置它的。

在我的第一个专栏中,我谈到了我为什么把 我的写作工作迁移到了 Vim 上 —— 远离了现代写作者们的标准工具,如文字处理器(MS Word 及它的开源替代方案)、文本编辑器(记事本,因为直到去年我一直是 Windows 用户)和云存储技术。如果你是一个写作者,在继续下面的内容前,我建议你先阅读一下 那篇文章的第一部分

基本上可以说,你使用的设备越多,你需要的写作工具就越多,最终你的工作流程就越复杂。这一点对我来说是很贴切的,因为我有四台设备,包括一部安卓手机,一台日常用的运行 Linux 的主力笔记本电脑,还有两台旧的笔记本电脑,其中一台是 Mac,我去户外拍摄时会带着它。

Vim 对于我和我的工作方式来说是一个完美的解决方案;虽然我不会说我的新的工作流程是现代写作者工作的最佳方式,但我可以说的是,对于写作者来说,拥有一个能在我们所有设备上工作的工具非常重要的,并且这个工具要足够强大以满足我们写作者每天从事的不同类型的写作需求。

从这个角度来看,Vim 的主要优势是它是跨平台的 —— 无论在什么设备上,Vim 都能工作。在苹果生态系统中使用 Vim 的情况我就不细说了,但粗略地看一下 这个应用程序 的评论,我就会知道,总会有人在各种地方使用 Vim,不管他们使用的是什么设备。

现在我们假设你是一个想开始使用 Vim 的写作者。当你安装了它,你该从哪里开始呢?

我在这一部分给你的并不算是教程,而是一系列的建议,包含对一个用于诗歌写作的 .vimrc 配置文件的解读。只要有可能,我就会链接到我学习相应内容时用到的 YouTube 上的教程。

对于 Linux 用户来说,系统已经预装了 Vim —— 通过你喜欢的终端模拟器就可以启动它。对于 Windows 和 Mac 用户,你可以从 Vim 官方网站 下载它。

建议

安装/启用 Vim 后

  • 通过终端打开 Vim Tutor。(Mac 用户可以用这种方式启动,而 Windows 用户也可以用这种方法启动。[LCTT 译注:原文这里本应该有链接,可能作者忘记添加了。无论如何,在终端中, Linux 中的命令是 vimtutor,Windows 在安装目录下找到 vimtutor.bat 命令并运行;Mac?应该与 Linux 一样?我没 Mac 呀!])在这个阶段,你不会使用 Vim 进行任何写作 —— 相反,你要每天花 15 分钟做 Vim 教程。不要多花一分钟或少花一分钟;看看在规定的 15 分钟内,你能在教程中取得多大的进展。你会发现,每天你都会在教程中取得更大的进步。在一个月内,你应该能够利用这些 15 分钟完成整个教程。
  • 成为一个更好的打字员对 Vim 的使用来说有极大的好处。这不是必须的,但我正在重新学习打字,它的副作用是使 Vim 变得更加有用了。我每次都以花 15 分钟练习打字开始,作为进入 Vim 教程前的热身。

在每一天的开始,我分配了 30 分钟的时间做这两项练习进行热身,而每天晚上睡觉前再分配 30 分钟进行练习以让我安定下来。这样的做法帮我快速从旧的工具包过渡到了 Vim,但你的安排可能有所不同。

我再次强调,除了 Vim Tutor 之外,上述步骤都是可选的;这完全取决于你个人的动机水平。

现在我们来到了这篇文章的重点:如何配置 Vim ,使它对写作者友好?

如何配置用于写作的 .vimrc

在开始之前,我想在这里提醒各位读者,我不是一个技术人员 —— 我是一个小说家 —— 你在下面看到的任何错误都是我自己的;我希望有经验的 Vim 用户能提供反馈,告诉我如何进一步完善我的配置文件。

下面是我的 .vimrc 文件。你可以从我的 GitHub 上下载,并进一步完善它:

syntax on

set noerrorbells " 取消 Vim 的错误警告铃声,关闭它以免打扰到我们 "
set textwidth=100 " 确保每一行不超过 100 字符 "
set tabstop=4 softtabstop=4
set shiftwidth=4
set expandtab
set smartindent
set linebreak
set number
set showmatch
set showbreak=+++
set smartcase
set noswapfile
set undodir=~/.vim/undodir
set undofile
set incsearch
set spell
set showmatch
set confirm
set ruler
set autochdir
set autowriteall
set undolevels=1000
set backspace=indent,eol,start

" 下面的设置确保按写作者而不是程序员喜欢的方式折行 "

set wrap
nnoremap <F5> :set linebreak<CR>
nnoremap <C-F5> :set nolinebreak<CR>


call plug#begin('~/.vim/plugged')

"   这是颜色风格插件 "

Plug 'colepeters/spacemacs-theme.vim'
Plug 'sainnhe/gruvbox-material'
Plug 'phanviet/vim-monokai-pro'
Plug 'flazz/vim-colorschemes'
Plug 'chriskempson/base16-vim'
Plug 'gruvbox-community/gruvbox'

"   这是为了更容易的诗歌写作选择的一些插件 "

Plug 'dpelle/vim-LanguageTool'
Plug 'ron89/thesaurus_query.vim'
Plug 'junegunn/goyo.vim'
Plug 'junegunn/limelight.vim'
Plug 'reedes/vim-pencil'
Plug 'reedes/vim-wordy'


"   这一部分是为了更容易地与机器集成,用了 vim-airline 这类插件 "

Plug 'vim-airline/vim-airline'

"   这一部分外理工作区和会话管理 "

Plug 'thaerkh/vim-workspace'

"   与上面插件相关, 下面的代码将你的所有的会话文件保存到一个你工作区之外的目录 "

let g:workspace_session_directory = $HOME . '/.vim/sessions/'


"   与上面插件相关,这是一个 Vim 活动的跟踪器 "

Plug 'wakatime/vim-wakatime'

"   一个干扰因素:我在这里使用了一些 Emacs 的功能,特别是 org-mode "

Plug 'jceb/vim-orgmode'


"  这是文件格式相关插件 "

Plug 'plasticboy/vim-markdown'


call plug#end()

colorscheme pacific
set background=dark

if executable('rg')
    let g:rg_derive_root='true'
endif

学习如何安装 Vim 插件时,这个教程帮助了我。我使用 Vim Plugged 插件管理器是因为在我看来它是最简单、最优雅的。

对于写作者的 .vimrc 选项的整理

  • syntax on:这可以确保 Vim 知道我在使用什么语法。做笔记、写这种文章时我主要使用 Markdown;而在写小说的时候,纯文本是我的首选格式。
  • set noerrorbells:为了你的精神状态,我强烈建议打开这个选项。
  • set textwidth=100:为了便于阅读,没有人愿意横向滚动一个文本文件。
  • set spell:如果有拼写错误的话提醒你。
  • set wrap:确保文本以写作者而不是程序员的方式进行折行。

你会注意到,我没有花更多时间讨论其他一些基本配置选项,因为我并不觉得那些对写作者来说有多重要。因为我做一些业余的编码工作,所以我的 .vimrc 配置反映了这一点。如果你只想在 Vim 上写作,那么上述配置就应该能让你顺利开始。

从这点上来说,你的 .vimrc 是一个活的文档,它能生动地反映你想用 Vim 做什么,以及你希望 Vim 如何为你做这些事情。

关于插件的说明

第 43-98 行之间是我对插件的配置。如果你已经学习了关于如何安装 Vim 插件的教程,我强烈推荐你从以下专为写作开发的 Vim 插件开始:

  • vim-LanguageTool
  • thesaurus_query.vim
  • vim-pencil
  • vim-wordy
  • vim-goyo
  • vim-markdown

总结

在这篇文章中,我们简单地介绍了写作者可以怎样开始使用 Vim,以及一个在写作工作中需要的 .vimrc 入门配置。除了我的 .vimrc 之外,我还将在这里链接到我在 GitHub 上发现的其他写作者的 .vimrc,它们是我自己配置时的灵感来源。

请劳记,这只是一个写作者的 .vimrc 的入门配置。你会发现,随着你的需求的发展,Vim 也可以随之发展。因此,投入一些时间学习配置你的 .vimrc 是值得的。

在下一篇文章中,我将会检视我在写作时的工作流程的具体细节,这个工作流程中我使用了 Vim 和 Git 及 GitHub。


via: https://news.itsfoss.com/configuring-vim-writing/

作者:Theena 选题:lujun9972 译者:piaoshi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你可以得到很多适用于 Linux 的开源网页浏览器,不只是基于 Chrome 的浏览器,而且还有 其它的替代品

它们大多数都侧重于提供漂亮的用户体验,并同时兼顾隐私功能。

然而,Nyxt 浏览器可能不是为最好的用户体验而建立的,而是为资深用户喜欢的某些东西而打造的。

Nyxt 浏览器:专注于键盘快捷键和命令的开源浏览器

Nyxt 是一个面向键盘的开源网页浏览器,可在 Linux 和 macOS 上使用。

当然,不是每个资深用户都会去使用键盘快捷键,但这旨在满足那些喜欢通过键盘导航的用户的需求。

它的灵感来自于 Vim 和 Emacs 中的键盘快捷键的工作方式 —— 所以如果你对这些编辑器很熟悉,那么你也会对这些快捷键感到熟悉。

与主流的网页浏览器不同,你不必在多个设置和菜单中导航,只需一个快速快捷键或一个命令,你就会获得所有你需要访问的功能。

如果你想知道的话,它不特定于某种网页引擎,它目前支持 WebEngine 和 WebKit。

因此,如果你是一个喜欢使用键盘导航的人,它可以节省时间并改善你的浏览体验。

它提供了相当多的有用功能,我将在下面指出。

Nyxt 浏览器的特点

你会发现这里提供了许多非常规的功能。在探索这里提到的每一个关键亮点之前,你可能想先浏览一下官方文档(按 F1 找到它),你可以在欢迎屏幕中可以找到链接。

  • 无损的树形的历史记录(跟踪你的浏览历史的确切层次,并轻松回忆你导航到的内容)
  • 剪贴板历史,帮助你快速找到你之前复制的内容
  • 开始输入命令的键盘快捷方式(CTRL+Space
  • 使用键盘快捷键在冗长的文件中导航,可以跳到一个特定的标题
  • 缓冲区替代了标签,它将每个标签的行为和设置相互隔离
  • 通过将多个标签映射到一个共同的元素来一同关闭
  • 无鼠标导航
  • 使用搜索快速找到一个缓冲区,而不是在许多标签中寻找它
  • 能够根据你的工作流程运行简短的脚本
  • 可定制的自动填写功能,你也可以在表单中自动填写当前日期
  • 内置的广告拦截器

除了上面提到的功能外,你还可以切换黑暗模式HTTPS 模式,以及在命令菜单中有大量的选项。

此外,它是完全可定制和可编程的。因此,你可以选择为自己量身定做。

在 Linux 中安装 Nyxt 浏览器

对于基于 Ubuntu 的发行版,你可以从 官方下载页面 找到一个 deb 包。

如果你还不会,你可能想读一下 安装 deb 文件的方法

它也为 Arch Linux 用户提供了 AUR,并为 Alpine Linux、Nix 和 Guix 提供了包。

如果你需要编译它,你也可以在 GitHub 页面 中找到源代码。

总结

虽然 Nyxt 浏览器可能不是最友好的浏览体验,但对于能够充分利用键盘快捷键和命令的用户来说,它肯定是一个特殊的选择。

如果你想要一个无鼠标的导航体验,这是一个值得尝试的浏览器。我建议你尝试一下 —— 但如果你一般不使用键盘快捷键来导航,这对你来说将是一个复杂的体验。

你尝试过 Nyxt 浏览器吗?请在下面的评论中告诉我你的想法。


via: https://itsfoss.com/nyxt-browser/

作者:Ankush Das 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Vim 编辑器是很好的 Rust 应用开发环境。

Rust 语言旨在以 C++ 开发人员熟悉的方式实现具有安全并发性和高内存性能的系统编程。它也是 Stack Overflow 的 2019 年开发人员调查中最受欢迎的编程语言之一。

文本编辑器和集成开发环境(IDE)工具使编写 Rust 代码更加轻松快捷。有很多编辑器可供选择,但是我相信 Vim 编辑器非常适合作为 Rust IDE。在本文中,我将说明如何为 Rust 应用开发设置 Vim。

安装 Vim

Vim 是 Linux 和 Unix 中最常用的命令行文本编辑器之一。最新版本(在编写本文时)是 8.2,它在使用方式上提供了前所未有的灵活性。

Vim 的下载页面提供了多种二进制或软件包形式安装。例如,如果使用 macOS,那么可以安装 MacVim 项目,然后通过安装 Vim 插件 扩展 Vim 的功能。

要设置 Rust 进行开发,请下载 Rustup,这是一个方便的 Rust 安装器工具,并在你的终端上运行以下命令(如果你使用 macOS、Linux 或任何其他类 Unix 系统):

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

在提示中选择安装选项。然后,你将看到如下输出:

stable installed - rustc 1.43.1 (8d69840ab 2020-05-04)

Rust is installed now. Great!

To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH
environment variable. Next time you log in this will be done
automatically.

To configure your current shell run source $HOME/.cargo/env

语法高亮

Vim 能让你通过 .vimrc 文件配置你的运行时环境。要启用语法高亮,请打开 .vimrc 文件(如果不存在就创建一个):

$ vim ~/.vimrc

.vimrc 中添加以下内容并保存:

filetype plugin indent on
syntax on

第一行同时打开检测、插件和缩进配置。第二行启用语法高亮。这些功能将帮助你在 Rust 中管理开发流程。在 Vim 的帮助文件中了解更多信息。

在 Vim 中创建一个 Rust 应用

要使用 Vim 创建一个新的 Rust HelloWorld 应用(hello.rs),请输入:

$ vim hello.rs

输入以下 Rust 代码在控制台中打印 Hello World!

fn main() {
    println!("Hello World");
}

它看起来应该像这样:

 title=

没有语法高亮的样子如下:

 title=

你是否注意到 Vim 自动缩进和组织代码?那是因为你在 .vimrc 文件中输入了第一行。

很好!接下来,你将使用 Rust 的包管理器 Cargo 构建此应用。

Cargo 集成

Cargo 使创建应用更加容易。要查看操作方法,请创建一个基于 Cargo 的 HelloWorld 应用。如果你尚未在 Linux 或 macOS 系统上安装 Cargo,请输入:

$ curl https://sh.rustup.rs -sSf | sh

然后使用 Cargo 创建包:

$ cargo new my_hello_world

如果查看目录结构,你会看到 Cargo 自动生成一些源码和目录。如果你安装了 tree,请运行它查看目录结构:

$ tree my_hello_world
my_hello_world
├── Cargo.toml
└── src
    └── main.rs

1 directory, 2 files

在 Vim 中打开 main.rs 源码文件:

$ vim my_hello_world/src/main.rs

它与你在上面手动创建的 HelloWorld 示例中的代码相同。用 Rust with Vim 代替 World

 fn main() {
      println!("Hello, Rust with Vim");
 }

使用 :wq 保存更改并退出 Vim。

编译你的应用

现在你可以使用 cargo build 编译你的第一个 Rust 应用:

$ cd my_hello_world
$ cargo build

你的终端输出将类似于以下内容:

   Compiling my_hello_world v0.1.0 (/Users/danieloh/cloud-native-app-dev/rust/my_hello_world)

    Finished dev [unoptimized + debuginfo] target(s) in 0.60s

你可能会看到一条警告消息,因为你重用了示例包名 my_hello_world,但现在可以忽略它。

运行应用:

$ target/debug/my_hello_world
Hello, Rust with Vim!

你也可以使用 cargo run 一次构建和运行应用:

$ cargo run
 
    Finished dev [unoptimized + debuginfo] target(s) in 0.00s
     Running `target/debug/my_hello_world`
Hello, Rust with Vim!!

恭喜!你在本地的 Vim 编辑器中设置了 Rust IDE,开发了第一个 Rust 应用,并使用 Cargo 包管理器工具构建、测试和运行了它。如果你想学习其他 Cargo 命令,请运行 cargo help


via: https://opensource.com/article/20/7/vim-rust-ide

作者:Daniel Oh 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Vim 是一个简单而又强大的文本编辑工具。大多数新用户都会被它吓倒,因为它不像常规的图形化文本编辑器那样“工作”。Vim “不寻常”的键盘快捷键让人不知道如何保存并退出 Vim。但一旦你掌握了 Vim,就没有什么能比得上它了。

网上有大量的 Vim 资源。我们也在介绍了一些 Vim 技巧。除了线上资源,也有很多书致力于介绍这个编辑器。今天,我们要介绍的是一本旨在使大多数用户轻松理解 Vim 的书。我们将讨论的书是 Swaroop C H 撰写的《A Byte of Vim》。

本书作者 Swaroop C H 已经在计算机领域工作了十余年,他曾在 Yahoo 和 Adobe 工作过。大学毕业后,他卖过 Linux CD,也曾多次创业,也是一个创建了一个名为 ion 的 iPod 充电器的团队的联合创始人。他目前是 Helpshift AI 团队的工程经理。

《A Byte of Vim》

像所有好书一样,《A Byte of Vim》一开始就谈到了什么是 Vim:“一个用于写各类文本的计算机程序。”他接着说:“Vim 之所以与众不同,是因为它是为数不多的既简单又强大的软件之一。”

在深入讲解如何使用 Vim 之前,Swaroop 先告诉读者如何在 Windows、Mac、Linux 和 BSD 上安装 Vim。安装完成后,他进而指导读者完成如何启动 Vim,以及如何创建第一个文件。

接着,Swaroop 讨论了 Vim 的不同模式,以及如何通过 Vim 的键盘快捷键来浏览文档。接着是使用 Vim 编辑文档的基础知识,包括如何在 Vim 中剪切/复制/粘帖以及撤销/重做。

在介绍了编辑基础知识后,Swaroop 介绍了如何使用 Vim 来编辑单个文档的多个部分。你也可以使用多个标签和窗口来同时编辑多个文档。

本书还涵盖了通过编写脚本和安装插件来扩展 Vim 的功能。在 Vim 中使用脚本有两种方法,一种是使用 Vim 的内置脚本语言,另一种是使用 Python 或 Perl 等编程语言来访问 Vim 的内核。可以编写或下载五种类型的 Vim 插件:vimrc、全局插件、文件类型插件、语法高亮插件和编译器插件。

在一个单独的章节中,Swaroop C H 介绍了使 Vim 更适合编程的特点。这些功能包括语法高亮、智能缩进、对 Shell 命令的支持、全局补全以及可用作 IDE 使用的功能。

获取《A Byte of Vim》一书并为之贡献

《A Byte of Vim》按照 共创协议 4.0授权。读者可以在作者的主页上免费阅读其在线版本。你也可以免费下载其 PDFEpub 或者 Mobi 版本。

如果你更喜欢阅读纸质版本,你也可以选择该方式。

请注意,《A Byte of Vim》的初始版本写于 2008,并转换为 PDf。不幸的是,Swaroop CH丢失了原始源文件。他正在努力将该书转换为 Markdown。如果你想提供帮助,请访问该书的 GitHub 页面

结语

当我初次对着 Vim 生气时,我不知道该怎么办。我希望那时候我就知道《A Byte of Vim》这本书。对于任何学习 Linux 的人来说,这本书都是不错的资源,特别是当你开始学习命令行的时候。

你读过 Swaroop C H 的《A Byte of Vim》吗?如果读过,你是如何找到它的?如果不是,那么你最喜欢关于开源主题的是哪本书?请在下方评论区告诉我们。


via: https://itsfoss.com/book-review-a-byte-of-vim/

作者:John Paul 选题:lujun9972 译者:JonnieWayy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

通过一些有趣的小技巧使你的文本编辑器更上一层楼。

Vim 是最受欢迎的文本编辑器之一,因此绝对值得你花时间去学习如何使用它。就算你只是学习使用这个无处不在的 Vi(m) 命令行文本编辑器打开文件、输入和编辑一些文本、保存编辑的文件并退出程序,你都会受益匪浅。

你会发现,使用 Vim 非常方便的的场景几乎总是涉及到运行远程 Shell 操作的任务。如果你时不时地使用 ssh,比如

$ ssh [email protected]

并在虚拟专用服务器(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 文档了解两者的不同之处)。

通过在 ~/.bashrc 中添加以下内容,将 Vim 设置为默认编辑器:

# set default editor to Vim
export EDITOR=vim

# 开头的行是可选的注释,这是一个好方法,可以提醒自己该命令的作用。

在 zsh 中将 Vim 设置为默认

zsh 是一种越来越流行的终端仿真器,尤其是在苹果公司的基于 FreeBSD 的 Darwin 系统最近从 Bash 转向 zsh 以来。

zsh 点文件与 Bash 的文件相当,因此你可以在 ~/.zshrc~/.zprofile 之间进行选择。有关何时使用哪一个的详细信息,请参见 zsh文档

将其设置为默认:

# set default editor to Vim
export EDITOR=vim

优化 Vim 配置

Vim 像是终端仿真器 shell 一样,也使用点文件来设置个人偏好。如果你发现了这种模式,则可能已经猜到它是 ~/.vimrc

你可能要更改的第一个设置是将对传统的 Vi 兼容模式切换为“关闭”。由于 Vim 是 Vi 的超集,因此 Vi 中的所有功能在 Vim 中都是可用的,并且在 Vim 中得到了很大的改进,你可以获得许多高级功能。最新版本(8.2)允许你在分割的窗口中以子进程 shell 的方式打开一个终端。

顺便说一句,明确关闭对传统的 Vi 的兼容性看起来没有什么作用(事实上,可能并没有什么作用)。当 Vim 遇到 .vimrc 文件时,它会暗暗地自动将兼容模式切换到关闭。但有时将其明确关闭仍然很重要。缩写 nocpnocompatible 的同义词,作用是一样的。条条大道通罗马,切换首选项有很多方式。

.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 年代发明的复制和粘贴功能还要早。

重要的模式

Vim 依赖于不同的模式来定义键盘的敲击行为。需要了解的重要模式有:

  • 普通模式:默认模式,主要用于导航和打开文件。
  • 插入模式(包括替换):这种模式下 Vim 允许将文本输入到打开的文件中。
  • 可视模式:Vim 的行为类似于基于鼠标的输入方式,如复制、编辑、替换等。
  • 命令模式(包括行模式、Ex 命令模式和末行模式):是在 Vim 中做更多事情的强大方法。

每种模式都有很多值得探索的地方。使用 Vimtutorvimtutor)可以交互式地学习移动光标、模式和在末行模式下运行 Ex 命令。一些不可缺少的生产力操作符包括:

操作符说明
:E打开资源管理器,用于定位文件和目录。
.重复上次的编辑操作。
;向前重复上一次的动作或移动
,向后重复上一次的动作或移动。
/向前搜索文档。
?向后搜索文档。
*查找光标所在处的单词的下一个出现的地方。
#查找光标所在处的单词的上一次出现的地方。
~切换大小写。
%()[]{} 的开闭符号之间切换;对编码非常有用。
z=提出拼写建议。

像钢琴一样弹奏 Vim

尽管把 Vim 的操作符“语言”记在记忆中是很重要的,但要想掌握它,难点在于学会像音乐家一样思考,把操作符和动作组合成“和弦”,这样你就可以像弹钢琴一样弹奏 Vim。这就是 Vim 的文本操作能力可以与另一个著名的命令行编辑器 Emacs 相媲美的地方。(虽然其中一个编辑器会让磨损掉你的 Esc 键,而另一个编辑器会让你的 Ctrl 键磨损掉。)

在描述键“和弦”时,Vim 中的传统做法是用大写字母 C 后面加上一个连字符(C-)来指代 Ctrl 键。这并不是通用的,但我将从这里开始遵循这一惯例,并在有可能引起混淆的时候加以说明。

如果你在 Vim 中键入长行,你会想把它设置成可以换行。想要根据你的工作方式对 Vim 进行个性化设置,请考虑一下这个设置:默认情况下,你希望 Vim 启动时如何处理文本换行?开还是关?我喜欢将其关闭,并将其留在运行命令文件之外。当我想让文本自动换行时,我只需在命令行模式下用 :set wrap 设置即可。

让 Vim 设置为默认情况下自动换行并没有错,这只是一个偏好问题 —— 它可能随着时间的推移而改变。同样你也可以控制粘贴、代码语言缩进语法和 Tab 键的设置(制表符还是空格?多少个空格?可也在这里深入研究这些选项)。所有这些默认行为的选项都是完全可配置和可更改的,并且在你使用命令行模式操作时可以实时更改。

你会在社区论坛、Vim 维基和文章(比如这篇文章)中找到很多关于设置 Vim 默认设置的建议。你应该很熟悉为你的个人计算环境设置首选项,Vim 也不例外。我强烈建议你从对设置进行很小的更改开始,慢慢地进行其它更改,以便你可以轻松地恢复设置。这样一来,你就可以好多年避免使用插件或完全不用插件。

Vim 8.2 中的分割、标签和终端

有两种方法可以将你正在处理的文件分割成不同的视图:它们可以并排显示,也可以使用应用程序标签页在全屏(窗口)中切换。这些对应用程序窗口的更改是从命令模式启动的,这需要使用冒号(:)来调起提示符。

每个分割的窗口可以容纳一个文件进行编辑,你可以通过标签页在更多的文件之间随意切换。分割的屏幕空间有限,所以当你想分割更多的屏幕时,标签页是很方便的。想要如何设置,纯属个人喜好的问题。要水平分割一个窗口,使用 :sp,垂直分割时使用 :vs

Vim 8.2 开始,你可以用 :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 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

如果你是一名系统管理员或者开发者,当你在终端工作时有时会需要编辑一个文件。在 Linux 系统中有几种文件编辑器,你可以根据需求选择合适的文件编辑器。在这里,我想推荐 Vim 编辑器。

为什么推荐 Vim 编辑器

相对于创建新文件,你更多是修改已经存在的文件。在这种情况下,Vim 快捷键可以有效地满足你的需求。

下列文章可以帮助你了解对文件和目录的操作。

什么是 Vim

Vim 是被 Linux 管理员和开发者广泛使用的最流行和功能强大的编辑器之一。它可以通过高度的自定义配置来提高文本编辑效率。它是在众多 Unix 默认安装的 Vi 编辑器的升级版。

Vim 通常被称为“程序员的编辑器”,但并不限于此,它也可用于编辑任何类型的文件。它具有许多功能,例如:多次撤销、多窗口和缓冲区、语法高亮、命令行编辑、文件名补全、可视选择等等。你可以使用 :help 命令来获取在线帮助。

理解 Vim 的模式

Vim 有两种模式,详细介绍如下:

命令模式: 当启动 Vim 编辑器后,默认处在命令模式下。你可以在文件中移动并且修改内容,剪切、复制和粘贴文件的一部分,同时发出命令执行更多操作(按 ESC 键进入命令模式)

插入模式: 插入模式用于在给定的文档位置插入文本(按 i 键进入插入模式)

我如何知道我正使用哪种 Vim 模式呢?

如果你正在使用插入模式,你会在编辑器的底部看到 INSERT。如果编辑器底部没有显示任何内容,或者在编辑器底部显示了文件名,则处于 “命令模式”。

命令模式下的光标移动

Vim 快捷键允许你使用不同的方式来移动光标:

  • G – 跳转到文件最后一行
  • gg – 跳转到文件首行
  • $ – 跳转到行末尾
  • 0(数字 0) – 跳转到行开头
  • w – 跳转到下一个单词的开始(单词的分隔符可以是空格或其他符号)
  • W – 跳转到下一个单词的开始(单词的分隔符只能是空格)
  • b – 跳转到下一个单词的末尾(单词的分隔符可以是空格或其他符号)
  • B – 跳转到下一个单词的末尾(单词的分隔符只能是空格)
  • PgDn 键 – 向下移动一页
  • PgUp 键 – 向上移动一页
  • Ctrl+d – 向下移动半页
  • Ctrl+u – 向上移动半页

插入模式:插入文字

下面的 Vim 快捷键允许你根据需要在光标的不同位置插入内容。

  • i – 在光标之前插入
  • a – 在光标之后插入
  • I – 在光标所在行的开头插入。当光标位于行中间时,这个键很有用
  • A – 在光标所在行的末尾插入。
  • o – 在光标所在行的下面插入新行
  • O – 在光标所在行的上面插入新行
  • ea – 在单词的末尾插入

拷贝、粘贴和删除一行

  • yy – 复制一行
  • p / P – 将内容粘贴到光标之后 / 之前
  • dd – 删除一行
  • dw – 删除一个单词

在 Vim 中搜索和替换匹配的模式

  • /模式 – 向后搜索给定的模式
  • ?模式 – 向前搜索给定的模式
  • n – 向后重复搜索之前给定的模式
  • N – 向前重复搜索之前给定的模式
  • :%s/旧模式/新模式/g – 将文件中所有的旧模式替换为新模式
  • :s/旧模式/新模式/g – 将当前行中所有的旧模式替换为新模式
  • :%s/旧模式/新模式/gc – 逐个询问是否文件中的旧模式替换为新模式

如何在 Vim 编辑器中跳转到特定行

你可以根据需求以两种方式达到该目的,如果你不知道行号,建议采用第一种方法。

通过打开文件并运行下面的命令来显示行号

:set number

当你设置好显示行号后,按 :n 跳转到相应的行号。例如,如果你想跳转到第 15 行,请输入:

:15

如果你已经知道行号,请使用以下方法在打开文件时直接跳转到相应行。例如,如果在打开文件时直接跳转到 20 行,请输入下面的命令:

$ vim +20 [文件名]

撤销操作/恢复上一次操作/重复上一次操作

  • u – 撤销更改
  • Ctrl+r – 恢复更改
  • . – 重复上一条命令

保存和退出 Vim

  • :w – 保存更改但不退出 vim
  • :wq – 写并退出
  • :q! – 强制退出

via: https://www.2daygeek.com/basic-vim-commands-cheat-sheet-quick-start-guide/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:萌新阿岩 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出