將 Vim 配置成一個(gè)寫作工具
我使用 Vim 來寫小說。我是這樣配置它的。
在我的第一個(gè)專欄中,我談到了我為什么把 我的寫作工作遷移到了 Vim 上 —— 遠(yuǎn)離了現(xiàn)代寫作者們的標(biāo)準(zhǔn)工具,如文字處理器(MS Word 及它的開源替代方案)、文本編輯器(記事本,因?yàn)橹钡饺ツ晡乙恢笔?Windows 用戶)和云存儲(chǔ)技術(shù)。如果你是一個(gè)寫作者,在繼續(xù)下面的內(nèi)容前,我建議你先閱讀一下 那篇文章的第一部分 。
基本上可以說,你使用的設(shè)備越多,你需要的寫作工具就越多,最終你的工作流程就越復(fù)雜。這一點(diǎn)對(duì)我來說是很貼切的,因?yàn)槲矣兴呐_(tái)設(shè)備,包括一部安卓手機(jī),一臺(tái)日常用的運(yùn)行 Linux 的主力筆記本電腦,還有兩臺(tái)舊的筆記本電腦,其中一臺(tái)是 Mac,我去戶外拍攝時(shí)會(huì)帶著它。
Vim 對(duì)于我和我的工作方式來說是一個(gè)完美的解決方案;雖然我不會(huì)說我的新的工作流程是現(xiàn)代寫作者工作的最佳方式,但我可以說的是,對(duì)于寫作者來說,擁有一個(gè)能在我們所有設(shè)備上工作的工具非常重要的,并且這個(gè)工具要足夠強(qiáng)大以滿足我們寫作者每天從事的不同類型的寫作需求。
從這個(gè)角度來看,Vim 的主要優(yōu)勢(shì)是它是跨平臺(tái)的 —— 無論在什么設(shè)備上,Vim 都能工作。在蘋果生態(tài)系統(tǒng)中使用 Vim 的情況我就不細(xì)說了,但粗略地看一下 這個(gè)應(yīng)用程序 的評(píng)論,我就會(huì)知道,總會(huì)有人在各種地方使用 Vim,不管他們使用的是什么設(shè)備。
現(xiàn)在我們假設(shè)你是一個(gè)想開始使用 Vim 的寫作者。當(dāng)你安裝了它,你該從哪里開始呢?
我在這一部分給你的并不算是教程,而是一系列的建議,包含對(duì)一個(gè)用于詩歌寫作的 .vimrc
配置文件的解讀。只要有可能,我就會(huì)鏈接到我學(xué)習(xí)相應(yīng)內(nèi)容時(shí)用到的 YouTube 上的教程。
對(duì)于 Linux 用戶來說,系統(tǒng)已經(jīng)預(yù)裝了 Vim —— 通過你喜歡的終端模擬器就可以啟動(dòng)它。對(duì)于 Windows 和 Mac 用戶,你可以從 Vim 官方網(wǎng)站 下載它。
建議
安裝/啟用 Vim 后
- 通過終端打開 Vim Tutor。(Mac 用戶可以用這種方式啟動(dòng),而 Windows 用戶也可以用這種方法啟動(dòng)。[LCTT 譯注:原文這里本應(yīng)該有鏈接,可能作者忘記添加了。無論如何,在終端中, Linux 中的命令是
vimtutor
,Windows 在安裝目錄下找到vimtutor.bat
命令并運(yùn)行;Mac?應(yīng)該與 Linux 一樣?我沒 Mac 呀!])在這個(gè)階段,你不會(huì)使用 Vim 進(jìn)行任何寫作 —— 相反,你要每天花 15 分鐘做 Vim 教程。不要多花一分鐘或少花一分鐘;看看在規(guī)定的 15 分鐘內(nèi),你能在教程中取得多大的進(jìn)展。你會(huì)發(fā)現(xiàn),每天你都會(huì)在教程中取得更大的進(jìn)步。在一個(gè)月內(nèi),你應(yīng)該能夠利用這些 15 分鐘完成整個(gè)教程。 - 成為一個(gè)更好的打字員對(duì) Vim 的使用來說有極大的好處。這不是必須的,但我正在重新學(xué)習(xí)打字,它的副作用是使 Vim 變得更加有用了。我每次都以花 15 分鐘練習(xí)打字開始,作為進(jìn)入 Vim 教程前的熱身。
在每一天的開始,我分配了 30 分鐘的時(shí)間做這兩項(xiàng)練習(xí)進(jìn)行熱身,而每天晚上睡覺前再分配 30 分鐘進(jìn)行練習(xí)以讓我安定下來。這樣的做法幫我快速從舊的工具包過渡到了 Vim,但你的安排可能有所不同。
我再次強(qiáng)調(diào),除了 Vim Tutor 之外,上述步驟都是可選的;這完全取決于你個(gè)人的動(dòng)機(jī)水平。
現(xiàn)在我們來到了這篇文章的重點(diǎn):如何配置 Vim ,使它對(duì)寫作者友好?
如何配置用于寫作的 .vimrc
在開始之前,我想在這里提醒各位讀者,我不是一個(gè)技術(shù)人員 —— 我是一個(gè)小說家 —— 你在下面看到的任何錯(cuò)誤都是我自己的;我希望有經(jīng)驗(yàn)的 Vim 用戶能提供反饋,告訴我如何進(jìn)一步完善我的配置文件。
下面是我的 .vimrc
文件。你可以從我的 GitHub 上下載,并進(jìn)一步完善它:
syntax on
set noerrorbells " 取消 Vim 的錯(cuò)誤警告鈴聲,關(guān)閉它以免打擾到我們 "
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
" 下面的設(shè)置確保按寫作者而不是程序員喜歡的方式折行 "
set wrap
nnoremap <F5> :set linebreak<CR>
nnoremap <C-F5> :set nolinebreak<CR>
call plug#begin('~/.vim/plugged')
" 這是顏色風(fēng)格插件 "
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'
" 這一部分是為了更容易地與機(jī)器集成,用了 vim-airline 這類插件 "
Plug 'vim-airline/vim-airline'
" 這一部分外理工作區(qū)和會(huì)話管理 "
Plug 'thaerkh/vim-workspace'
" 與上面插件相關(guān), 下面的代碼將你的所有的會(huì)話文件保存到一個(gè)你工作區(qū)之外的目錄 "
let g:workspace_session_directory = $HOME . '/.vim/sessions/'
" 與上面插件相關(guān),這是一個(gè) Vim 活動(dòng)的跟蹤器 "
Plug 'wakatime/vim-wakatime'
" 一個(gè)干擾因素:我在這里使用了一些 Emacs 的功能,特別是 org-mode "
Plug 'jceb/vim-orgmode'
" 這是文件格式相關(guān)插件 "
Plug 'plasticboy/vim-markdown'
call plug#end()
colorscheme pacific
set background=dark
if executable('rg')
let g:rg_derive_root='true'
endif
學(xué)習(xí)如何安裝 Vim 插件時(shí),這個(gè)教程幫助了我。我使用 Vim Plugged 插件管理器是因?yàn)樵谖铱磥硭亲詈?jiǎn)單、最優(yōu)雅的。
對(duì)于寫作者的 .vimrc 選項(xiàng)的整理
syntax on
:這可以確保 Vim 知道我在使用什么語法。做筆記、寫這種文章時(shí)我主要使用 Markdown;而在寫小說的時(shí)候,純文本是我的首選格式。set noerrorbells
:為了你的精神狀態(tài),我強(qiáng)烈建議打開這個(gè)選項(xiàng)。set textwidth=100
:為了便于閱讀,沒有人愿意橫向滾動(dòng)一個(gè)文本文件。set spell
:如果有拼寫錯(cuò)誤的話提醒你。set wrap
:確保文本以寫作者而不是程序員的方式進(jìn)行折行。
你會(huì)注意到,我沒有花更多時(shí)間討論其他一些基本配置選項(xiàng),因?yàn)槲也⒉挥X得那些對(duì)寫作者來說有多重要。因?yàn)槲易鲆恍I(yè)余的編碼工作,所以我的 .vimrc
配置反映了這一點(diǎn)。如果你只想在 Vim 上寫作,那么上述配置就應(yīng)該能讓你順利開始。
從這點(diǎn)上來說,你的 .vimrc
是一個(gè)活的文檔,它能生動(dòng)地反映你想用 Vim 做什么,以及你希望 Vim 如何為你做這些事情。
關(guān)于插件的說明
第 43-98 行之間是我對(duì)插件的配置。如果你已經(jīng)學(xué)習(xí)了關(guān)于如何安裝 Vim 插件的教程,我強(qiáng)烈推薦你從以下專為寫作開發(fā)的 Vim 插件開始:
vim-LanguageTool
thesaurus_query.vim
vim-pencil
vim-wordy
vim-goyo
vim-markdown
總結(jié)
在這篇文章中,我們簡(jiǎn)單地介紹了寫作者可以怎樣開始使用 Vim,以及一個(gè)在寫作工作中需要的 .vimrc
入門配置。除了我的 .vimrc
之外,我還將在這里鏈接到我在 GitHub 上發(fā)現(xiàn)的其他寫作者的 .vimrc
,它們是我自己配置時(shí)的靈感來源。
請(qǐng)勞記,這只是一個(gè)寫作者的 .vimrc
的入門配置。你會(huì)發(fā)現(xiàn),隨著你的需求的發(fā)展,Vim 也可以隨之發(fā)展。因此,投入一些時(shí)間學(xué)習(xí)配置你的 .vimrc
是值得的。
在下一篇文章中,我將會(huì)檢視我在寫作時(shí)的工作流程的具體細(xì)節(jié),這個(gè)工作流程中我使用了 Vim 和 Git 及 GitHub。