> 本書出處:http://learnvimscriptthehardway.onefloweroneworld.com/
[笨方法學Vimscript](http://learnvimscriptthehardway.stevelosh.com/)面向那些想學會如何自定義[Vim](http://www.vim.org/)編輯器的用戶。
這?_不是_?一個Vim?_使用_?教程。閱讀本書之前你應該適應用Vim編輯文本,并知道一些諸如 "buffer", "window"以及"insert mode"這些術語的含義。
本書大致分為三個部分:
* 第一部分講述了一些Vim的基本命令,通過這些命令修改你的`~/.vimrc`可以快速、 方便地定制你的Vim環境。
* 第二部分將Vimscript作為一門編程語言做深入了解,包括變量、比較還有函數。
* 第三部分實例創建一個插件。
本書[版權](http://learnvimscriptthehardway.stevelosh.com/license.html)2013 歸Steve Losh所有,非經同意,他人不得出版或作更改。 你可以在沒有做任何改動且不從中牟利的前提下分享本書。
本書將一直免費在線閱讀。
你可以用8$購買一本[電子版(PDF, epub, mobi)](http://leanpub.org/learnvimscriptthehardway)。
你可以用20$購買一本[紙質版](http://bit.ly/lvsthw-paperback)。
你可以用40$購買一本[精裝版](http://bit.ly/lvsthw-hardcover)。
可從[BitBucket](http://bitbucket.org/sjl/learnvimscriptthehardway/)和[GitHub](http://github.com/sjl/learnvimscriptthehardway/)獲取本書的源碼。如果你發下任何錯誤或感覺某處 可以改善,可以隨意提交問題,但是我保留本書的版權,所以,如果你感覺不爽我也能夠理解。
程序猿們更喜歡實現自己的idea。
idea形成算法,而算法又發展為算法,并使?_idea成真_
作為一個程序猿,我們使用文本編輯器記錄我們的idea,并為寫程序實現它。全職的程序猿 一生中的千分之十的時間都是在和他的文本編輯器打交道,這期間他們的所做的事情包括:
* 將他們的靈感記錄到計算機上
* 重新考慮并修改靈感中的錯誤
* 用代碼實現他們的靈感
* 寫文檔記錄某功能是如何及為什么那么實現
* 與其他的程序猿交流這個經驗
Vim是一個功能相當強大的編輯器,當然,前提是你需要根據你的工作、喜好以及習慣定制 它。本書將向你介紹Vimscript,一門用于定制Vim的腳本語言。讀完本書你將能夠定制 Vim使其更加適應你的文本編輯需求,以后再使用Vim將有更好的體驗。
同時我也會提到一些與Vimscript關系不大的點,但那些內容通常都能加強你對Vimscript的認知。 如果你一天僅很少的時間使用Vim,學習Vimscript對你沒有多大意義,所以請慎重考慮并平衡你的時間。
本書的寫作風格與其他多數的編程書籍略有不同。本書將引領你敲寫命令并查看其背后的奧秘 ,而不是僅僅簡單的告訴你Vimscript是如何工作的。
有時本書會帶你進入死胡同,然后才會給你解釋解決問題的"正確方法"。其他的書籍通常不這么做, 或者僅僅在解決問題?_之后_?提到其中的技巧。然而這并不是現實世界中事情的進展順序。 你時常會快速寫一些Vimscript的代碼段,運行卻遇到不明緣由的故障。細致研讀此書,不要 局限于瀏覽,讀完之后再次遇到上述問題你將能夠順利解決了。熟能生巧嘛!
本書的每一章節都只講述一個主題。每一章節都內容簡短而信息豐富,所以不要跳過任何章節。 如果你真想從本書中學到東西,你要動手敲寫所有的命令。可能你已經是一個經驗豐富的程序猿, 能夠快速閱讀并理解代碼的含義。但是不要掉以輕心,學習Vim/Vimscript有個與其他普通程序 語言更加不同的體驗。
你需要?**敲寫?_所有的_?命令**
你需要?**完成?_所有的_?練習**
兩個理由解釋上述內容的重要性!第一,Vimscript語言是一門古老的語言,其設計難免存在一些 不妥之處。一個簡單的配置項就可影響整個腳本的功能。敲寫?_每個_?章節遇到的?_每個_?命令 ,完成?_每個_?練習,你就會發現很容易地發現并修復遇到的問題。
第二,Vimscript其實?_就是_?Vim命令。在Vim中,保存一個文件使用命令`:write`(或者縮寫?`:w`)并回車確認。在Vimscript中,使用`write`實現文件保存功能。Vimscript中的許多 命令都可用于日常文件編輯工作,必須勤加練習以記住那些命令才會有用, 僅僅是看過是無法運用自如的。
我希望本書能夠對你有所幫助。本書?_不是_?一本對Vimscript的綜合指南。本書試圖讓你 掌握Vimscript,能夠利用它定制你的Vim環境,為其他用戶編寫一些簡單的插件, 能夠閱讀他人的代碼(利用`:help`命令),能夠分辨出一些常見的語法陷阱。
祝你好運!
- 前言
- 鳴謝
- 預備知識
- 打印信息
- 設置選項
- 基本映射
- 模式映射
- 精確映射
- Leaders
- 編輯你的Vimrc文件
- Abbreviations
- 更多的Mappings
- 鍛煉你的手指
- 本地緩沖區的選項設置和映射
- 自動命令
- 本地緩沖區縮寫
- 自動命令組
- Operator-Pending映射
- 更多Operator-Pending映射
- 狀態條
- 負責任的編碼
- 變量
- 變量作用域
- 條件語句
- 比較
- 函數
- 函數參數
- 數字
- 字符串
- 字符串函數
- Execute命令
- Normal命令
- 執行normal!
- 基本的正則表達式
- 實例研究:Grep 運算符(Operator),第一部分
- 實例研究:Grep運算符(Operator),第二部分
- 實例研究:Grep運算符(Operator),第三部分
- 列表
- 循環
- 字典
- 切換
- 函數式編程
- 路徑
- 創建一個完整的插件
- 舊社會下的插件配置方式
- 新希望:用Pathogen配置插件
- 檢測文件類型
- 基本語法高亮
- 高級語法高亮
- 更高級的語法高亮
- 基本折疊
- 高級折疊
- 段移動原理
- Potion段移動
- 外部命令
- 自動加載
- 文檔
- 發布
- 還剩下什么?