Full Code of wsdjeg/vim-galore-zh_cn for AI

master 618d368552f1 cached
20 files
62.2 KB
20.5k tokens
1 requests
Download .txt
Repository: wsdjeg/vim-galore-zh_cn
Branch: master
Commit: 618d368552f1
Files: 20
Total size: 62.2 KB

Directory structure:
gitextract_9qcjjajt/

├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── PLUGINS.md
├── README.md
├── chapter/
│   ├── Common problems.md
│   ├── List-Of-Colorschemes.md
│   ├── List-Of-Plugins.md
│   ├── Miscellaneous.md
│   ├── Technical quirks.md
│   ├── bracketed-paste.md
│   ├── editing-huge-files-is-slow.md
│   ├── editing-small-files-is-slow.md
│   ├── function-search-undo.md
│   ├── map-capslock-to-control.md
│   ├── standard-plugins.md
│   ├── vim-distributions.md
│   └── why-hjkl-for-navigation.md
├── contents/
│   └── minimal-vimrc.vim
└── tools/
    └── chinese_linter.vim

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
tags


================================================
FILE: CONTRIBUTING.md
================================================
有兴趣加入本项目的话,请关注下面的认领列表,选择相应的章节翻译,或者协助校验正在翻译的项目。如果有兴趣加入,可以fork本项目,开始翻译后提交PR,便于我们协助校验,不必翻译结束后才提交PR.

## 认领方式

**开issue**

```md
章节名称:*****
译者:******
PR: PR的链接
```

## 提交方式

每个章节独立翻译,并提交至 [chapter/](chapter/) 文件夹,文件名为英文标题小写,以`-`链接单词。例如翻译`What is Vim?`章节, 文件名即为`chapter/what-is-vim.md`. 合并到主仓库后,将定期将这些章节文件合并到`README.dm`。

## 章节列表

基于[mhinz/vim-galore@d50d48b](https://github.com/mhinz/vim-galore/tree/d50d48bce40bbbd99a0528a2893b00cf54a6f4b9), 后期如果有改动,定期在更新。

|章节名称|认领状态|PR链接|
|:------|:------|:------|
| [Intro](https://github.com/mhinz/vim-galore#intro) | [wsdjeg] | [#4] |
| [What is Vim?](https://github.com/mhinz/vim-galore#what-is-vim) | [wsdjeg] | [#4] |
| [The Vim Philosophy](https://github.com/mhinz/vim-galore#the-vim-philosophy) | [wsdjeg] | [#4] |
| [First steps](https://github.com/mhinz/vim-galore#first-steps) | [wsdjeg] | [#4] |
| [Minimal vimrc](https://github.com/mhinz/vim-galore#minimal-vimrc) | [wsdjeg] | [#4] |
| [What kind of Vim am I running?](https://github.com/mhinz/vim-galore#what-kind-of-vim-am-i-running) | [wsdjeg] | [#4] |
| [Cheatsheets](https://github.com/mhinz/vim-galore#cheatsheets) | [wsdjeg] | [#4] |
| [Basics](https://github.com/mhinz/vim-galore#basics-1) | [wsdjeg] | [#4] |
| [Buffers, windows, tabs](https://github.com/mhinz/vim-galore#buffers-windows-tabs) | [wsdjeg] | [#4] |
| [Active, loaded, listed, named buffers](https://github.com/mhinz/vim-galore#active-loaded-listed-named-buffers) | [wsdjeg] | [#4] |
| [Argument list](https://github.com/mhinz/vim-galore#argument-list) | [wsdjeg] | [#4] |
| [Mappings](https://github.com/mhinz/vim-galore#mappings) | [wsdjeg] | [#4] |
| [Mapleader](https://github.com/mhinz/vim-galore#mapleader) | [星星丶S1nG] | [#7] |
| [Registers](https://github.com/mhinz/vim-galore#registers) | [星星丶S1nG] | [#7] |
| [Ranges](https://github.com/mhinz/vim-galore#ranges) | [星星丶S1nG] | [#7] |
| [Marks](https://github.com/mhinz/vim-galore#marks) | [星星丶S1nG] | [#7] |
| [Completion](https://github.com/mhinz/vim-galore#completion) | [星星丶S1nG] | [#7] |
| [Motions, operators, text objects](https://github.com/mhinz/vim-galore#motions-operators-text-objects) | [星星丶S1nG] | [#7] |
| [Autocmds](https://github.com/mhinz/vim-galore#autocmds) | [星星丶S1nG] | [#7] |
| [Changelist, jumplist](https://github.com/mhinz/vim-galore#changelist-jumplist) | [星星丶S1nG] | [#7] |
| [Undo tree](https://github.com/mhinz/vim-galore#undo-tree) | [星星丶S1nG] | [#7] |
| [Quickfix and location lists](https://github.com/mhinz/vim-galore#quickfix-and-location-lists) | [星星丶S1nG] | [#7] |
| [Macros](https://github.com/mhinz/vim-galore#macros) | [星星丶S1nG] | [#7] |
| [Colorschemes](https://github.com/mhinz/vim-galore#colorschemes) | [星星丶S1nG] | [#7] |
| [Folding](https://github.com/mhinz/vim-galore#folding) | [星星丶S1nG] | [#7] |
| [Sessions](https://github.com/mhinz/vim-galore#sessions) | [星星丶S1nG] | [#7] |
| [Locality](https://github.com/mhinz/vim-galore#locality) | [星星丶S1nG] | [#7] |
| [Usage](https://github.com/mhinz/vim-galore#usage-1) | [hotleave] | [#13] |
| [Getting help offline](https://github.com/mhinz/vim-galore#getting-help-offline) | [hotleave] | [#13] |
| [Getting help offline (alternative)](https://github.com/mhinz/vim-galore#getting-help-offline-alternative) | [hotleave] | [#13] |
| [Getting help online](https://github.com/mhinz/vim-galore#getting-help-online) | [hotleave] | [#13] |
| [Autocmds in practice](https://github.com/mhinz/vim-galore#autocmds-in-practice) | [hotleave] | [#13] |
| [User events](https://github.com/mhinz/vim-galore#user-events) | [hotleave] | [#13] |
| [Nested autocmds](https://github.com/mhinz/vim-galore#nested-autocmds) | [hotleave] | [#13] |
| [Clipboard](https://github.com/mhinz/vim-galore#clipboard) | [hotleave] | [#13] |
| [Clipboard usage (Windows, OSX)](https://github.com/mhinz/vim-galore#clipboard-usage-windows-osx) | [hotleave] | [#13] |
| [Clipboard usage (Linux, BSD, ...)](https://github.com/mhinz/vim-galore#clipboard-usage-linux-bsd-) | [hotleave] | [#13] |
| [Restore cursor position when opening file](https://github.com/mhinz/vim-galore#restore-cursor-position-when-opening-file) | [hotleave] | [#13] |
| [Handling backup, swap, undo, and viminfo files](https://github.com/mhinz/vim-galore#handling-backup-swap-undo-and-viminfo-files) | [hotleave] | [#13] |
| [Editing remote files](https://github.com/mhinz/vim-galore#editing-remote-files) | [hotleave] | [#13] |
| [Managing plugins](https://github.com/mhinz/vim-galore#managing-plugins) | [hotleave] | [#13] |
| [Block insert](https://github.com/mhinz/vim-galore#block-insert) | [hotleave] | [#13] |
| [Running external programs and using filters](https://github.com/mhinz/vim-galore#running-external-programs-and-using-filters) | [hotleave] | [#13] |
| [Cscope](https://github.com/mhinz/vim-galore#cscope) | [hotleave] | [#13] |
| [MatchIt](https://github.com/mhinz/vim-galore#matchit) | [hotleave] | [#13] |
| [Tips](https://github.com/mhinz/vim-galore#tips-1) | [星星丶S1nG] | [#15] |
| [Saner behavior of n and N](https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n) | [星星丶S1nG] | [#15] |
| [Saner command-line history](https://github.com/mhinz/vim-galore#saner-command-line-history) | [星星丶S1nG] | [#15] |
| [Saner CTRL-L](https://github.com/mhinz/vim-galore#saner-ctrl-l) | [星星丶S1nG] | [#15] |
| [Disable audible and visual bells](https://github.com/mhinz/vim-galore#disable-audible-and-visual-bells) | [星星丶S1nG] | [#15] |
| [Quickly move current line](https://github.com/mhinz/vim-galore#quickly-move-current-line) | [星星丶S1nG] | [#15] |
| [Quickly add empty lines](https://github.com/mhinz/vim-galore#quickly-add-empty-lines) | [星星丶S1nG] | [#15] |
| [Quickly edit your macros](https://github.com/mhinz/vim-galore#quickly-edit-your-macros) | [星星丶S1nG] | [#15] |
| [Quickly jump to header or source file](https://github.com/mhinz/vim-galore#quickly-jump-to-header-or-source-file) | [星星丶S1nG] | [#15] |
| [Quickly change font size in GUI](https://github.com/mhinz/vim-galore#quickly-change-font-size-in-gui) | [星星丶S1nG] | [#15] |
| [Change cursor style dependent on mode](https://github.com/mhinz/vim-galore#change-cursor-style-dependent-on-mode) | [星星丶S1nG] | [#15] |
| [Don't lose selection when shifting sidewards](https://github.com/mhinz/vim-galore#dont-lose-selection-when-shifting-sidewards) | [星星丶S1nG] | [#15] |
| [Reload a file on saving](https://github.com/mhinz/vim-galore#reload-a-file-on-saving) | [星星丶S1nG] | [#15] |
| [Smarter cursorline](https://github.com/mhinz/vim-galore#smarter-cursorline) | [星星丶S1nG] | [#15] |
| [Faster keyword completion](https://github.com/mhinz/vim-galore#faster-keyword-completion) | [星星丶S1nG] | [#15] |
| [Cosmetic changes to colorschemes](https://github.com/mhinz/vim-galore#cosmetic-changes-to-colorschemes) | [星星丶S1nG] | [#15] |
| [Commands](https://github.com/mhinz/vim-galore#commands-1) | [hotleave] | [#18] |
| [:global and :vglobal](https://github.com/mhinz/vim-galore#global-and-vglobal) - Execute a command on all matching lines. | [hotleave] | [#18] |
| [:normal and :execute](https://github.com/mhinz/vim-galore#normal-and-execute) - The scripting dream team. | [hotleave] | [#18] |
| [:redir](https://github.com/mhinz/vim-galore#redir) - Redirect messages. | [hotleave] | [#18] |
| [Debugging](https://github.com/mhinz/vim-galore#debugging-1) | YDWX | |
| [General tips](https://github.com/mhinz/vim-galore#general-tips) | YDWX | |
| [Verbosity](https://github.com/mhinz/vim-galore#verbosity) | YDWX | |
| [Profiling startup time](https://github.com/mhinz/vim-galore#profiling-startup-time) | YDWX | |
| [Profiling at runtime](https://github.com/mhinz/vim-galore#profiling-at-runtime) | YDWX | |
| [Debugging Vim scripts](https://github.com/mhinz/vim-galore#debugging-vim-scripts) | | |
| [Debugging syntax files](https://github.com/mhinz/vim-galore#debugging-syntax-files) | | |
| [Miscellaneous](https://github.com/mhinz/vim-galore#miscellaneous-1) | #11 | |
| [Additional resources](https://github.com/mhinz/vim-galore#additional-resources) | #11 | |
| [Vim distributions](https://github.com/mhinz/vim-galore#vim-distributions) | #11 | |
| [Standard plugins](https://github.com/mhinz/vim-galore#standard-plugins) | #11 | |
| [Map CapsLock to Control](https://github.com/mhinz/vim-galore#map-capslock-to-control) | #11 | |
| [Easter eggs](https://github.com/mhinz/vim-galore#easter-eggs) | #11 | |
| [Why hjkl for navigation?](https://github.com/mhinz/vim-galore#why-hjkl-for-navigation) | #11 | |
| [Common problems](https://github.com/mhinz/vim-galore#common-problems-1) | [hotleave] | [#18] |
| [Editing small files is slow](https://github.com/mhinz/vim-galore#editing-small-files-is-slow) | [hotleave] | [#18] |
| [Editing huge files is slow](https://github.com/mhinz/vim-galore#editing-huge-files-is-slow) | [hotleave] | [#18] |
| [Bracketed paste (or why do I have to set 'paste' all the time?)](https://github.com/mhinz/vim-galore#bracketed-paste-or-why-do-i-have-to-set-paste-all-the-time) | [hotleave] | [#18] |
| [Delays when using escape key in terminal](https://github.com/mhinz/vim-galore#delays-when-using-escape-key-in-terminal) | [hotleave] | [#18] |
| [Function search undo](https://github.com/mhinz/vim-galore#function-search-undo) | [hotleave] | [#18] |
| [Technical quirks](https://github.com/mhinz/vim-galore#technical-quirks-1) | | [#18] |
| [Newline used for NUL](https://github.com/mhinz/vim-galore#newline-used-for-nul) | | |
| [List of colorschemes](https://github.com/mhinz/vim-galore#list-of-colorschemes-1) | | |
| [List of plugins](https://github.com/mhinz/vim-galorecontents/plugins.md) | | |


<!-- plublic links for prs -->
[#4]: https://github.com/wsdjeg/vim-galore-zh_cn/pull/4
[#7]: https://github.com/wsdjeg/vim-galore-zh_cn/pull/7
[#13]: https://github.com/wsdjeg/vim-galore-zh_cn/pull/13
[#15]: https://github.com/wsdjeg/vim-galore-zh_cn/pull/15
[#18]: https://github.com/wsdjeg/vim-galore-zh_cn/pull/18

<!-- plublic links for users -->
[wsdjeg]: https://github.com/wsdjeg
[星星丶S1nG]: https://github.com/S1ngS1ng
[Hotleave]: https://github.com/hotleave



================================================
FILE: LICENSE
================================================
Attribution-ShareAlike 4.0 International

=======================================================================

Creative Commons Corporation ("Creative Commons") is not a law firm and
does not provide legal services or legal advice. Distribution of
Creative Commons public licenses does not create a lawyer-client or
other relationship. Creative Commons makes its licenses and related
information available on an "as-is" basis. Creative Commons gives no
warranties regarding its licenses, any material licensed under their
terms and conditions, or any related information. Creative Commons
disclaims all liability for damages resulting from their use to the
fullest extent possible.

Using Creative Commons Public Licenses

Creative Commons public licenses provide a standard set of terms and
conditions that creators and other rights holders may use to share
original works of authorship and other material subject to copyright
and certain other rights specified in the public license below. The
following considerations are for informational purposes only, are not
exhaustive, and do not form part of our licenses.

     Considerations for licensors: Our public licenses are
     intended for use by those authorized to give the public
     permission to use material in ways otherwise restricted by
     copyright and certain other rights. Our licenses are
     irrevocable. Licensors should read and understand the terms
     and conditions of the license they choose before applying it.
     Licensors should also secure all rights necessary before
     applying our licenses so that the public can reuse the
     material as expected. Licensors should clearly mark any
     material not subject to the license. This includes other CC-
     licensed material, or material used under an exception or
     limitation to copyright. More considerations for licensors:
	wiki.creativecommons.org/Considerations_for_licensors

     Considerations for the public: By using one of our public
     licenses, a licensor grants the public permission to use the
     licensed material under specified terms and conditions. If
     the licensor's permission is not necessary for any reason--for
     example, because of any applicable exception or limitation to
     copyright--then that use is not regulated by the license. Our
     licenses grant only permissions under copyright and certain
     other rights that a licensor has authority to grant. Use of
     the licensed material may still be restricted for other
     reasons, including because others have copyright or other
     rights in the material. A licensor may make special requests,
     such as asking that all changes be marked or described.
     Although not required by our licenses, you are encouraged to
     respect those requests where reasonable. More_considerations
     for the public: 
	wiki.creativecommons.org/Considerations_for_licensees

=======================================================================

Creative Commons Attribution-ShareAlike 4.0 International Public
License

By exercising the Licensed Rights (defined below), You accept and agree
to be bound by the terms and conditions of this Creative Commons
Attribution-ShareAlike 4.0 International Public License ("Public
License"). To the extent this Public License may be interpreted as a
contract, You are granted the Licensed Rights in consideration of Your
acceptance of these terms and conditions, and the Licensor grants You
such rights in consideration of benefits the Licensor receives from
making the Licensed Material available under these terms and
conditions.


Section 1 -- Definitions.

  a. Adapted Material means material subject to Copyright and Similar
     Rights that is derived from or based upon the Licensed Material
     and in which the Licensed Material is translated, altered,
     arranged, transformed, or otherwise modified in a manner requiring
     permission under the Copyright and Similar Rights held by the
     Licensor. For purposes of this Public License, where the Licensed
     Material is a musical work, performance, or sound recording,
     Adapted Material is always produced where the Licensed Material is
     synched in timed relation with a moving image.

  b. Adapter's License means the license You apply to Your Copyright
     and Similar Rights in Your contributions to Adapted Material in
     accordance with the terms and conditions of this Public License.

  c. BY-SA Compatible License means a license listed at
     creativecommons.org/compatiblelicenses, approved by Creative
     Commons as essentially the equivalent of this Public License.

  d. Copyright and Similar Rights means copyright and/or similar rights
     closely related to copyright including, without limitation,
     performance, broadcast, sound recording, and Sui Generis Database
     Rights, without regard to how the rights are labeled or
     categorized. For purposes of this Public License, the rights
     specified in Section 2(b)(1)-(2) are not Copyright and Similar
     Rights.

  e. Effective Technological Measures means those measures that, in the
     absence of proper authority, may not be circumvented under laws
     fulfilling obligations under Article 11 of the WIPO Copyright
     Treaty adopted on December 20, 1996, and/or similar international
     agreements.

  f. Exceptions and Limitations means fair use, fair dealing, and/or
     any other exception or limitation to Copyright and Similar Rights
     that applies to Your use of the Licensed Material.

  g. License Elements means the license attributes listed in the name
     of a Creative Commons Public License. The License Elements of this
     Public License are Attribution and ShareAlike.

  h. Licensed Material means the artistic or literary work, database,
     or other material to which the Licensor applied this Public
     License.

  i. Licensed Rights means the rights granted to You subject to the
     terms and conditions of this Public License, which are limited to
     all Copyright and Similar Rights that apply to Your use of the
     Licensed Material and that the Licensor has authority to license.

  j. Licensor means the individual(s) or entity(ies) granting rights
     under this Public License.

  k. Share means to provide material to the public by any means or
     process that requires permission under the Licensed Rights, such
     as reproduction, public display, public performance, distribution,
     dissemination, communication, or importation, and to make material
     available to the public including in ways that members of the
     public may access the material from a place and at a time
     individually chosen by them.

  l. Sui Generis Database Rights means rights other than copyright
     resulting from Directive 96/9/EC of the European Parliament and of
     the Council of 11 March 1996 on the legal protection of databases,
     as amended and/or succeeded, as well as other essentially
     equivalent rights anywhere in the world.

  m. You means the individual or entity exercising the Licensed Rights
     under this Public License. Your has a corresponding meaning.


Section 2 -- Scope.

  a. License grant.

       1. Subject to the terms and conditions of this Public License,
          the Licensor hereby grants You a worldwide, royalty-free,
          non-sublicensable, non-exclusive, irrevocable license to
          exercise the Licensed Rights in the Licensed Material to:

            a. reproduce and Share the Licensed Material, in whole or
               in part; and

            b. produce, reproduce, and Share Adapted Material.

       2. Exceptions and Limitations. For the avoidance of doubt, where
          Exceptions and Limitations apply to Your use, this Public
          License does not apply, and You do not need to comply with
          its terms and conditions.

       3. Term. The term of this Public License is specified in Section
          6(a).

       4. Media and formats; technical modifications allowed. The
          Licensor authorizes You to exercise the Licensed Rights in
          all media and formats whether now known or hereafter created,
          and to make technical modifications necessary to do so. The
          Licensor waives and/or agrees not to assert any right or
          authority to forbid You from making technical modifications
          necessary to exercise the Licensed Rights, including
          technical modifications necessary to circumvent Effective
          Technological Measures. For purposes of this Public License,
          simply making modifications authorized by this Section 2(a)
          (4) never produces Adapted Material.

       5. Downstream recipients.

            a. Offer from the Licensor -- Licensed Material. Every
               recipient of the Licensed Material automatically
               receives an offer from the Licensor to exercise the
               Licensed Rights under the terms and conditions of this
               Public License.

            b. Additional offer from the Licensor -- Adapted Material.
               Every recipient of Adapted Material from You
               automatically receives an offer from the Licensor to
               exercise the Licensed Rights in the Adapted Material
               under the conditions of the Adapter's License You apply.

            c. No downstream restrictions. You may not offer or impose
               any additional or different terms or conditions on, or
               apply any Effective Technological Measures to, the
               Licensed Material if doing so restricts exercise of the
               Licensed Rights by any recipient of the Licensed
               Material.

       6. No endorsement. Nothing in this Public License constitutes or
          may be construed as permission to assert or imply that You
          are, or that Your use of the Licensed Material is, connected
          with, or sponsored, endorsed, or granted official status by,
          the Licensor or others designated to receive attribution as
          provided in Section 3(a)(1)(A)(i).

  b. Other rights.

       1. Moral rights, such as the right of integrity, are not
          licensed under this Public License, nor are publicity,
          privacy, and/or other similar personality rights; however, to
          the extent possible, the Licensor waives and/or agrees not to
          assert any such rights held by the Licensor to the limited
          extent necessary to allow You to exercise the Licensed
          Rights, but not otherwise.

       2. Patent and trademark rights are not licensed under this
          Public License.

       3. To the extent possible, the Licensor waives any right to
          collect royalties from You for the exercise of the Licensed
          Rights, whether directly or through a collecting society
          under any voluntary or waivable statutory or compulsory
          licensing scheme. In all other cases the Licensor expressly
          reserves any right to collect such royalties.


Section 3 -- License Conditions.

Your exercise of the Licensed Rights is expressly made subject to the
following conditions.

  a. Attribution.

       1. If You Share the Licensed Material (including in modified
          form), You must:

            a. retain the following if it is supplied by the Licensor
               with the Licensed Material:

                 i. identification of the creator(s) of the Licensed
                    Material and any others designated to receive
                    attribution, in any reasonable manner requested by
                    the Licensor (including by pseudonym if
                    designated);

                ii. a copyright notice;

               iii. a notice that refers to this Public License;

                iv. a notice that refers to the disclaimer of
                    warranties;

                 v. a URI or hyperlink to the Licensed Material to the
                    extent reasonably practicable;

            b. indicate if You modified the Licensed Material and
               retain an indication of any previous modifications; and

            c. indicate the Licensed Material is licensed under this
               Public License, and include the text of, or the URI or
               hyperlink to, this Public License.

       2. You may satisfy the conditions in Section 3(a)(1) in any
          reasonable manner based on the medium, means, and context in
          which You Share the Licensed Material. For example, it may be
          reasonable to satisfy the conditions by providing a URI or
          hyperlink to a resource that includes the required
          information.

       3. If requested by the Licensor, You must remove any of the
          information required by Section 3(a)(1)(A) to the extent
          reasonably practicable.

  b. ShareAlike.

     In addition to the conditions in Section 3(a), if You Share
     Adapted Material You produce, the following conditions also apply.

       1. The Adapter's License You apply must be a Creative Commons
          license with the same License Elements, this version or
          later, or a BY-SA Compatible License.

       2. You must include the text of, or the URI or hyperlink to, the
          Adapter's License You apply. You may satisfy this condition
          in any reasonable manner based on the medium, means, and
          context in which You Share Adapted Material.

       3. You may not offer or impose any additional or different terms
          or conditions on, or apply any Effective Technological
          Measures to, Adapted Material that restrict exercise of the
          rights granted under the Adapter's License You apply.


Section 4 -- Sui Generis Database Rights.

Where the Licensed Rights include Sui Generis Database Rights that
apply to Your use of the Licensed Material:

  a. for the avoidance of doubt, Section 2(a)(1) grants You the right
     to extract, reuse, reproduce, and Share all or a substantial
     portion of the contents of the database;

  b. if You include all or a substantial portion of the database
     contents in a database in which You have Sui Generis Database
     Rights, then the database in which You have Sui Generis Database
     Rights (but not its individual contents) is Adapted Material,

     including for purposes of Section 3(b); and
  c. You must comply with the conditions in Section 3(a) if You Share
     all or a substantial portion of the contents of the database.

For the avoidance of doubt, this Section 4 supplements and does not
replace Your obligations under this Public License where the Licensed
Rights include other Copyright and Similar Rights.


Section 5 -- Disclaimer of Warranties and Limitation of Liability.

  a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
     EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
     AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
     ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
     IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
     WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
     PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
     ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
     KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
     ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.

  b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
     TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
     NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
     INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
     COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
     USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
     ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
     DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
     IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.

  c. The disclaimer of warranties and limitation of liability provided
     above shall be interpreted in a manner that, to the extent
     possible, most closely approximates an absolute disclaimer and
     waiver of all liability.


Section 6 -- Term and Termination.

  a. This Public License applies for the term of the Copyright and
     Similar Rights licensed here. However, if You fail to comply with
     this Public License, then Your rights under this Public License
     terminate automatically.

  b. Where Your right to use the Licensed Material has terminated under
     Section 6(a), it reinstates:

       1. automatically as of the date the violation is cured, provided
          it is cured within 30 days of Your discovery of the
          violation; or

       2. upon express reinstatement by the Licensor.

     For the avoidance of doubt, this Section 6(b) does not affect any
     right the Licensor may have to seek remedies for Your violations
     of this Public License.

  c. For the avoidance of doubt, the Licensor may also offer the
     Licensed Material under separate terms or conditions or stop
     distributing the Licensed Material at any time; however, doing so
     will not terminate this Public License.

  d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
     License.


Section 7 -- Other Terms and Conditions.

  a. The Licensor shall not be bound by any additional or different
     terms or conditions communicated by You unless expressly agreed.

  b. Any arrangements, understandings, or agreements regarding the
     Licensed Material not stated herein are separate from and
     independent of the terms and conditions of this Public License.


Section 8 -- Interpretation.

  a. For the avoidance of doubt, this Public License does not, and
     shall not be interpreted to, reduce, limit, restrict, or impose
     conditions on any use of the Licensed Material that could lawfully
     be made without permission under this Public License.

  b. To the extent possible, if any provision of this Public License is
     deemed unenforceable, it shall be automatically reformed to the
     minimum extent necessary to make it enforceable. If the provision
     cannot be reformed, it shall be severed from this Public License
     without affecting the enforceability of the remaining terms and
     conditions.

  c. No term or condition of this Public License will be waived and no
     failure to comply consented to unless expressly agreed to by the
     Licensor.

  d. Nothing in this Public License constitutes or may be interpreted
     as a limitation upon, or waiver of, any privileges and immunities
     that apply to the Licensor or You, including from the legal
     processes of any jurisdiction or authority.


=======================================================================

Creative Commons is not a party to its public
licenses. Notwithstanding, Creative Commons may elect to apply one of
its public licenses to material it publishes and in those instances
will be considered the “Licensor.” The text of the Creative Commons
public licenses is dedicated to the public domain under the CC0 Public
Domain Dedication. Except for the limited purpose of indicating that
material is shared under a Creative Commons public license or as
otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the
use of the trademark "Creative Commons" or any other trademark or logo
of Creative Commons without its prior written consent including,
without limitation, in connection with any unauthorized modifications
to any of its public licenses or any other arrangements,
understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the
public licenses.

Creative Commons may be contacted at creativecommons.org.


================================================
FILE: PLUGINS.md
================================================
## 插件列表

<!-- vim-markdown-toc GFM -->

- [颜色主题](#颜色主题)
- [按功能分类](#按功能分类)
  - [文本对齐](#文本对齐)
  - [语法检查](#语法检查)
  - [代码补全](#代码补全)
  - [Cycle](#cycle)
  - [代码注释](#代码注释)
  - [自动补全括号](#自动补全括号)
  - [模糊搜索](#模糊搜索)
  - [文本搜索](#文本搜索)
  - [代码对齐线](#代码对齐线)
  - [Navigation](#navigation)
  - [插件管理](#插件管理)
  - [代码片段](#代码片段)
  - [状态栏](#状态栏)
  - [Surround](#surround)
  - [Taking notes](#taking-notes)
  - [Testing](#testing)
  - [文本对象](#文本对象)
  - [Tmux](#tmux)
  - [编辑历史管理](#编辑历史管理)
  - [版本控制](#版本控制)
  - [Writing](#writing)
  - [Misc](#misc)
- [编程语言](#编程语言)
  - [C、C++](#cc)
  - [Clojure](#clojure)
  - [Elixir](#elixir)
  - [Go](#go)
  - [HTML](#html)
  - [Java](#java)
  - [Javascript](#javascript)
  - [Lua](#lua)
  - [PHP](#php)
  - [Python](#python)
  - [TeX](#tex)
  - [VimL](#viml)

<!-- vim-markdown-toc -->

### 颜色主题

以下为一些比较流行的颜色主题:

- [acme-colors](https://github.com/plan9-for-vimspace/acme-colors)
- [apprentice](https://github.com/romainl/Apprentice)
- [base16](https://github.com/chriskempson/base16-vim)
- [gotham](https://github.com/whatyouhide/vim-gotham)
- [gruvbox](https://github.com/morhetz/gruvbox)
- [janah](https://github.com/mhinz/vim-janah)
- [jellybeans](https://github.com/nanotech/jellybeans.vim)
- [lucius](https://github.com/jonathanfilip/vim-lucius)
- [molokai](https://github.com/tomasr/molokai)
- [nofrils](https://github.com/robertmeta/nofrils)
- [oceanic-next](https://github.com/mhartington/oceanic-next)
- [paramount](https://github.com/owickstrom/vim-colors-paramount)
- [railscasts](https://github.com/jpo/vim-railscasts-theme)
- [seoul256](https://github.com/junegunn/seoul256.vim)
- [solarized](https://github.com/altercation/vim-colors-solarized) (or [solarized8](https://github.com/lifepillar/vim-solarized8) or [flattened](https://github.com/romainl/flattened))
- [tomorrow](https://github.com/chriskempson/vim-tomorrow-theme)
- [vividchalk](https://github.com/tpope/vim-vividchalk)
- [yowish](https://github.com/kabbamine/yowish.vim)
- [zenburn](https://github.com/jnurmine/Zenburn)

Alternatively, generate your own colorscheme using [themer](https://github.com/mjswensen/themer)
or [Colortemplate](https://github.com/lifepillar/vim-colortemplate).

### 按功能分类

#### 文本对齐

- [tabular](https://github.com/godlygeek/tabular)
- [vim-easy-align](https://github.com/junegunn/vim-easy-align)
- [vim-lion](https://github.com/tommcdo/vim-lion)

#### 语法检查

- [ale](https://github.com/w0rp/ale)
- [neomake](https://github.com/neomake/neomake)
- [syntastic](https://github.com/vim-syntastic/syntastic)

#### 代码补全

- [VimCompletesMe](https://github.com/ajh17/VimCompletesMe)
- [YouCompleteMe](https://github.com/Valloric/YouCompleteMe)
- [asyncomplete.vim](https://github.com/prabirshrestha/asyncomplete.vim)
- [completion-nvim](https://github.com/nvim-lua/completion-nvim)
- [completor.vim](https://github.com/maralla/completor.vim)
- [deoplete.nvim](https://github.com/Shougo/deoplete.nvim)
- [neocomplete.vim](https://github.com/Shougo/neocomplete.vim)
- [nvim-compe](https://github.com/hrsh7th/nvim-compe)
- [nvim-completion-manager](https://github.com/roxma/nvim-completion-manager)
- [supertab](https://github.com/ervandew/supertab)
- [vim-mucomplete](https://github.com/lifepillar/vim-mucomplete)

#### Cycle

- [switch.vim](https://github.com/AndrewRadev/switch.vim)
- [vim-speeddating](https://github.com/tpope/vim-speeddating)

#### 代码注释

- [nerdcommenter](https://github.com/scrooloose/nerdcommenter)
- [tcomment_vim](https://github.com/tomtom/tcomment_vim)
- [vim-commentary](https://github.com/tpope/vim-commentary)

#### 自动补全括号

- [auto-pairs](https://github.com/jiangmiao/auto-pairs)
- [delimitMate](https://github.com/Raimondi/delimitMate)
- [vim-endwise](https://github.com/tpope/vim-endwise)

#### 模糊搜索

- [leaderf](https://github.com/Yggdroot/LeaderF) (_requires +python3 or +python_)
- [denite.nvim](https://github.com/Shougo/denite.nvim) (_requires +python3_)
- [vim-clap](https://github.com/liuchengxu/vim-clap/)
- [Command-T](https://github.com/wincent/Command-T) (_requires +ruby_)
- [ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim)
- [fzf](https://github.com/junegunn/fzf) (and [fzf.vim](https://github.com/junegunn/fzf.vim))
- [unite.vim](https://github.com/Shougo/unite.vim)
- [vim-fz](https://github.com/mattn/vim-fz)

#### 文本搜索

- [ctrlsf.vim](https://github.com/dyng/ctrlsf.vim)
- [ferret](https://github.com/wincent/ferret)
- [vim-grepper](https://github.com/mhinz/vim-grepper)
- [flygrep](https://github.com/wsdjeg/FlyGrep.vim)

#### 代码对齐线

- [indentLine](https://github.com/Yggdroot/indentLine)
- [vim-indent-guides](https://github.com/nathanaelkane/vim-indent-guides)

#### Navigation

- [nerdtree](https://github.com/scrooloose/nerdtree)
- [tagbar](https://github.com/majutsushi/tagbar)
- [vim-dirvish](https://github.com/justinmk/vim-dirvish)
- [vim-easymotion](https://github.com/easymotion/vim-easymotion)
- [vim-sneak](https://github.com/justinmk/vim-sneak)
- [vim-vinegar](https://github.com/tpope/vim-vinegar)
- [vimfiler.vim](https://github.com/Shougo/vimfiler.vim) (_depends on other plugins_)
- [defx.nvim](https://github.com/Shougo/defx.nvim) (_requires +python3_)

Also see [fuzzy finders](#fuzzy-finders).

#### 插件管理

- [apt-vim](https://github.com/egalpin/apt-vim)
- [dein.vim](https://github.com/Shougo/dein.vim)
- [minpac](https://github.com/k-takata/minpac)
- [vim-addon-manager](https://github.com/MarcWeber/vim-addon-manager)
- [vim-pathogen](https://github.com/tpope/vim-pathogen)
- [vim-plug](https://github.com/junegunn/vim-plug)
- [vundle.vim](https://github.com/VundleVim/Vundle.vim)

#### 代码片段

- [neosnippet.vim](https://github.com/Shougo/neosnippet.vim) (_depends on other plugins_)
- [ultisnips](https://github.com/SirVer/ultisnips)
- [vim-snipmate](https://github.com/garbas/vim-snipmate) (_depends on other plugins_)
- [xptemplate](https://github.com/drmingdrmer/xptemplate)

#### 状态栏

- [lightline.vim](https://github.com/itchyny/lightline.vim)
- [powerline](https://github.com/powerline/powerline)
- [vim-airline](https://github.com/vim-airline/vim-airline)
- [vim-flagship](https://github.com/tpope/vim-flagship)

#### Surround

- [vim-operator-surround](https://github.com/rhysd/vim-operator-surround)
- [vim-sandwich](https://github.com/machakann/vim-sandwich)
- [vim-surround](https://github.com/tpope/vim-surround)

#### Taking notes

- [vim-dotoo](https://github.com/dhruvasagar/vim-dotoo)
- [vim-journal](https://github.com/junegunn/vim-journal)
- [vim-notes](https://github.com/xolox/vim-notes)
- [vim-orgmode](https://github.com/jceb/vim-orgmode)
- [vim-pad](https://github.com/fmoralesc/vim-pad)
- [vimwiki](https://github.com/vimwiki/vimwiki)

#### Testing

- [vim-test](https://github.com/janko-m/vim-test)

#### 文本对象

- [targets.vim](https://github.com/wellle/targets.vim)
- [vim-exchange](https://github.com/tommcdo/vim-exchange)
- [vim-indent-object](https://github.com/michaeljsmith/vim-indent-object)
- [vim-matchup](https://github.com/andymass/vim-matchup)
- [vim-textobj-user](https://github.com/kana/vim-textobj-user)

#### Tmux

- [tmux-complete.vim](https://github.com/wellle/tmux-complete.vim)
- [vim-dispatch](https://github.com/tpope/vim-dispatch)
- [vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator)
- [vitality.vim](https://github.com/sjl/vitality.vim)

#### 编辑历史管理

- [vim-mundo](https://github.com/simnalamburt/vim-mundo)
- [gundo.vim](https://github.com/sjl/gundo.vim)
- [undotree](https://github.com/mbbill/undotree)

#### 版本控制

- [agit.vim](https://github.com/cohama/agit.vim)
- [committia.vim](https://github.com/rhysd/committia.vim)
- [gist-vim](https://github.com/mattn/gist-vim)
- [github-issues.vim](https://github.com/jaxbot/github-issues.vim)
- [gitv](https://github.com/gregsexton/gitv)
- [gv.vim](https://github.com/junegunn/gv.vim)
- [nerdtree-git-plugin](https://github.com/Xuyuanp/nerdtree-git-plugin)
- [vim-auto-programming](https://github.com/haya14busa/vim-auto-programming)
- [vim-fugitive](https://github.com/tpope/vim-fugitive)
- [vim-gitgutter](https://github.com/airblade/vim-gitgutter)
- [vim-github-dashboard](https://github.com/junegunn/vim-github-dashboard)
- [vim-lawrencium](https://bitbucket.org/ludovicchabant/vim-lawrencium)
- [vim-signify](https://github.com/mhinz/vim-signify)
- [vimagit](https://github.com/jreybert/vimagit)
- [git-messenger.vim](https://github.com/rhysd/git-messenger.vim/)

#### Writing

- [vim-grammarous](https://github.com/rhysd/vim-grammarous)
- [vim-online-thesaurus](https://github.com/beloglazov/vim-online-thesaurus)

#### Misc

- [calendar.vim](https://github.com/itchyny/calendar.vim)
- [CoVim](https://github.com/FredKSchott/CoVim)
- [FastFold](https://github.com/Konfekt/FastFold)
- [goyo.vim](https://github.com/junegunn/goyo.vim)
- [is.vim](https://github.com/haya14busa/is.vim)
- [NrrwRgn](https://github.com/chrisbra/NrrwRgn)
- [sideways.vim](https://github.com/AndrewRadev/sideways.vim)
- [splitjoin.vim](https://github.com/AndrewRadev/splitjoin.vim)
- [unicode.vim](https://github.com/chrisbra/unicode.vim)
- [vim-abolish](https://github.com/tpope/vim-abolish)
- [vim-bracketed-paste](https://github.com/ConradIrwin/vim-bracketed-paste)
- [vim-devicons](https://github.com/ryanoasis/vim-devicons)
- [vim-diff-enhanced](https://github.com/chrisbra/vim-diff-enhanced)
- [vim-diminactive](https://github.com/blueyed/vim-diminactive)
- [vim-fixkey](https://github.com/drmikehenry/vim-fixkey)
- [vim-gnupg](https://github.com/jamessan/vim-gnupg)
- [vim-gutentags](https://github.com/ludovicchabant/vim-gutentags)
- [vim-hackernews](https://github.com/ryanss/vim-hackernews)
- [vim-move](https://github.com/matze/vim-move)
- [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors)
- [vim-projectionist](https://github.com/tpope/vim-projectionist)
- [vim-qf](https://github.com/romainl/vim-qf)
- [vim-rsi](https://github.com/tpope/vim-rsi)
- [vim-sleuth](https://github.com/tpope/vim-sleuth)
- [vim-startify](https://github.com/mhinz/vim-startify)
- [vim-unimpaired](https://github.com/tpope/vim-unimpaired)

### 编程语言

#### C、C++

- [a.vim](https://github.com/vim-scripts/a.vim)
- [clang_complete](https://github.com/Rip-Rip/clang_complete)
- [color_coded](https://github.com/jeaye/color_coded)
- [lh-cpp](https://github.com/LucHermitte/lh-cpp)
- [vim-cpp-enhanced-highlight](https://github.com/octol/vim-cpp-enhanced-highlight)

#### Clojure

- [paredit](https://github.com/kovisoft/paredit)
- [rainbow_parentheses.vim](https://github.com/junegunn/rainbow_parentheses.vim)
- [vim-clojure-highlight](https://github.com/guns/vim-clojure-highlight)
- [vim-fireplace](https://github.com/tpope/vim-fireplace)
- [vim-salve](https://github.com/tpope/vim-salve)
- [vim-sexp-mappings-for-regular-people](https://github.com/tpope/vim-sexp-mappings-for-regular-people)
- [vim-sexp](https://github.com/guns/vim-sexp)

#### Elixir

- [alchemist.vim](https://github.com/slashmili/alchemist.vim)
- [vim-elixir](https://github.com/elixir-editors/vim-elixir)
- [vim-mix-format](https://github.com/mhinz/vim-mix-format)

#### Go

- [gofmt.vim](https://github.com/tweekmonster/gofmt.vim)
- [hl-goimport.vim](https://github.com/tweekmonster/hl-goimport.vim)
- [vim-go](https://github.com/fatih/vim-go)
- [vim-godebug](https://github.com/jodosha/vim-godebug)

#### HTML

- [emmet-vim](https://github.com/mattn/emmet-vim)
- [html5.vim](https://github.com/othree/html5.vim)

#### Java

- [vim-javacomplete2](https://github.com/artur-shaik/vim-javacomplete2)

#### Javascript

- [es.next.syntax.vim](https://github.com/othree/es.next.syntax.vim)
- [javascript-libraries-syntax.vim](https://github.com/othree/javascript-libraries-syntax.vim)
- [node-vim-debugger](https://github.com/sidorares/node-vim-debugger)
- [tern_for_vim](https://github.com/ternjs/tern_for_vim)
- [vim-esformatter](https://github.com/millermedeiros/vim-esformatter)
- [vim-flow](https://github.com/flowtype/vim-flow)
- [vim-javascript-syntax](https://github.com/jelera/vim-javascript-syntax)
- [vim-javascript](https://github.com/pangloss/vim-javascript)
- [vim-node](https://github.com/moll/vim-node)
- [vim-prettier](https://github.com/prettier/vim-prettier)
- [yajs.vim](https://github.com/othree/yajs.vim)
- [yats.vim](https://github.com/HerringtonDarkholme/yats.vim)

#### Lua

- [vim-lua-ftplugin](https://github.com/xolox/vim-lua-ftplugin)
- [vim-lua-inspect](https://github.com/xolox/vim-lua-inspect)

#### PHP

- [php.vim](https://github.com/StanAngeloff/php.vim)
- [vim-php-cs-fixer](https://github.com/stephpy/vim-php-cs-fixer)
- [vim-php-namespace](https://github.com/arnaud-lb/vim-php-namespace)
- [vim-php-refactoring-toolbox](https://github.com/adoy/vim-php-refactoring-toolbox)

#### Python

- [braceless.vim](https://github.com/tweekmonster/braceless.vim)
- [impsort.vim](https://github.com/tweekmonster/impsort.vim)
- [jedi-vim](https://github.com/davidhalter/jedi-vim)
- [python-mode](https://github.com/klen/python-mode)
- [SimpylFold](https://github.com/tmhedberg/SimpylFold)
- [vim-flake8](https://github.com/nvie/vim-flake8)

#### TeX

- [vimtex](https://github.com/lervag/vimtex)

#### VimL

- [exception.vim](https://github.com/tweekmonster/exception.vim)
- [helpful.vim](https://github.com/tweekmonster/helpful.vim)
- [vader.vim](https://github.com/junegunn/vader.vim)
- [vim-lookup](https://github.com/mhinz/vim-lookup)
- [vim-scriptease](https://github.com/tpope/vim-scriptease)
- [vim-themis](https://github.com/thinca/vim-themis)


================================================
FILE: README.md
================================================
<div align='center'>
  <h1>Vim 从入门到精通</h1>
  <br /><br />
</div>

<!-- vim-markdown-toc GFM -->

<!-- vim-markdown-toc -->

文章移至: [https://wsdjeg.net/vim-galore-zh-cn/](https://wsdjeg.net/vim-galore-zh-cn/)


================================================
FILE: chapter/Common problems.md
================================================
# 常见问题

## 编辑小文件很慢

## 编辑大文件很慢

## 相同部分粘贴 (要不为什么我总要设置‘粘贴’?)

## 使用终端中 Esc 键时的延迟

## 无法重复函数中执行的搜索


================================================
FILE: chapter/List-Of-Colorschemes.md
================================================
# 配色方案列表

这儿列举了一些常用的Vim配色方案:

- [acme-colors](https://github.com/plan9-for-vimspace/acme-colors)
- [base16](https://github.com/chriskempson/base16-vim)
- [gotham](https://github.com/whatyouhide/vim-gotham)
- [gruvbox](https://github.com/morhetz/gruvbox)
- [janah](https://github.com/mhinz/vim-janah)
- [jellybeans](https://github.com/nanotech/jellybeans.vim)
- [lucius](https://github.com/jonathanfilip/vim-lucius)
- [molokai](https://github.com/tomasr/molokai)
- [railscasts](https://github.com/jpo/vim-railscasts-theme)
- [seoul256](https://github.com/junegunn/seoul256.vim)
- [solarized](https://github.com/altercation/vim-colors-solarized) (或者它浅色衍生方案 [flattened](https://github.com/romainl/flattened))
- [tomorrow](https://github.com/chriskempson/vim-tomorrow-theme)
- [vividchalk](https://github.com/tpope/vim-vividchalk)
- [yowish](https://github.com/kabbamine/yowish.vim)
- [zenburn](https://github.com/jnurmine/Zenburn)



================================================
FILE: chapter/List-Of-Plugins.md
================================================
## 插件列表

#### [以功能区分](#以功能区分-1)

- [文本对齐](#文本对齐)
- [构建和可疑代码标记](#构建和可疑代码标记)
- [代码补全](#代码补全)
- [Cycle](#cycle)
- [注释工具](#注释工具)
- [分割符](#分割符)
- [模糊搜索](#模糊搜索)
- [Grep 工具](#grep-工具)
- [缩进](#缩进)
- [文件导航](#文件导航)
- [代码片段](#代码片段)
- [状态栏](#状态栏)
- [文字环绕符](#文字环绕符)
- [记笔记](#记笔记)
- [文本对象](#文本对象)
- [Tmux](#tmux)
- [撤销历史](#撤销历史)
- [版本控制](#版本控制)
- [写作工具](#写作工具)
- [其他](#其他)

#### [以文件类型区分](#以文件类型区分-1)

- [C and C++](#c-and-c)
- [Clojure](#clojure)
- [Go](#go)
- [HTML](#html)
- [Java](#java)
- [Javascript](#javascript)
- [Lua](#lua)
- [Python](#python)
- [TeX](#tex)
- [VimL](#viml)

## 以功能区分

#### 文本对齐 

- [tabular](https://github.com/godlygeek/tabular)
- [vim-easy-align](https://github.com/junegunn/vim-easy-align)

#### 构建和可疑代码标记

- [ale](https://github.com/w0rp/ale)
- [neomake](https://github.com/neomake/neomake)
- [syntastic](https://github.com/vim-syntastic/syntastic)

#### 代码补全

- [VimCompletesMe](https://github.com/ajh17/VimCompletesMe)
- [YouCompleteMe](https://github.com/Valloric/YouCompleteMe)
- [completor.vim](https://github.com/maralla/completor.vim)
- [deoplete.nvim](https://github.com/Shougo/deoplete.nvim)
- [neocomplete.vim](https://github.com/Shougo/neocomplete.vim)
- [supertab](https://github.com/ervandew/supertab)
- [vim-mucomplete](https://github.com/lifepillar/vim-mucomplete)

#### Cycle

- [switch.vim](https://github.com/AndrewRadev/switch.vim)
- [vim-speeddating](https://github.com/tpope/vim-speeddating)

#### 注释工具

- [nerdcommenter](https://github.com/scrooloose/nerdcommenter)
- [tcomment_vim](https://github.com/tomtom/tcomment_vim)
- [vim-commentary](https://github.com/tpope/vim-commentary)

#### 分割符 

- [auto-pairs](https://github.com/jiangmiao/auto-pairs)
- [delimitMate](https://github.com/Raimondi/delimitMate)
- [vim-endwise](https://github.com/tpope/vim-endwise)

#### 模糊搜索

- [Command-T](https://github.com/wincent/Command-T) (_requires +ruby_)
- [ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim)
- [denite.nvim](https://github.com/Shougo/denite.nvim) (_requires +python3_)
- [fzf](https://github.com/junegunn/fzf)
- [unite.vim](https://github.com/Shougo/unite.vim)

#### Grep 工具

- [ctrlsf.vim](https://github.com/dyng/ctrlsf.vim)
- [ferret](https://github.com/wincent/ferret)
- [vim-grepper](https://github.com/mhinz/vim-grepper)

#### 缩进

- [indentLine](https://github.com/Yggdroot/indentLine)
- [vim-indent-guides](https://github.com/nathanaelkane/vim-indent-guides)

#### 文件导航 

- [nerdtree](https://github.com/scrooloose/nerdtree)
- [tagbar](https://github.com/majutsushi/tagbar)
- [vim-dirvish](https://github.com/justinmk/vim-dirvish)
- [vim-easymotion](https://github.com/easymotion/vim-easymotion)
- [vim-sneak](https://github.com/justinmk/vim-sneak)
- [vim-vinegar](https://github.com/tpope/vim-vinegar)
- [vimfiler.vim](https://github.com/Shougo/vimfiler.vim) (_depends on other plugins_)

见[fuzzy finders](#fuzzy-finders).

#### 代码片段

- [neosnippet.vim](https://github.com/Shougo/neosnippet.vim) (_depends on other plugins_)
- [ultisnips](https://github.com/SirVer/ultisnips)
- [vim-snipmate](https://github.com/garbas/vim-snipmate) (_depends on other plugins_)
- [xptemplate](https://github.com/drmingdrmer/xptemplate)

#### 状态栏

- [lightline.vim](https://github.com/itchyny/lightline.vim)
- [powerline](https://github.com/powerline/powerline)
- [vim-airline](https://github.com/vim-airline/vim-airline)
- [vim-flagship](https://github.com/tpope/vim-flagship)

#### 文字环绕符 

- [vim-operator-surround](https://github.com/rhysd/vim-operator-surround)
- [vim-sandwich](https://github.com/machakann/vim-sandwich)
- [vim-surround](https://github.com/tpope/vim-surround)

#### 记笔记 

- [vim-dotoo](https://github.com/dhruvasagar/vim-dotoo)
- [vim-journal](https://github.com/junegunn/vim-journal)
- [vim-notes](https://github.com/xolox/vim-notes)
- [vim-orgmode](https://github.com/jceb/vim-orgmode)
- [vim-pad](https://github.com/fmoralesc/vim-pad)
- [vimwiki](https://github.com/vimwiki/vimwiki)

#### 文本对象

- [targets.vim](https://github.com/wellle/targets.vim)
- [vim-exchange](https://github.com/tommcdo/vim-exchange)
- [vim-textobj-user](https://github.com/kana/vim-textobj-user)

#### Tmux

- [tmux-complete.vim](https://github.com/wellle/tmux-complete.vim)
- [vim-dispatch](https://github.com/tpope/vim-dispatch)
- [vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator)
- [vitality.vim](https://github.com/sjl/vitality.vim)

#### 撤销历史 

- [gundo.vim](https://github.com/sjl/gundo.vim)
- [undotree](https://github.com/mbbill/undotree)

#### 版本控制

- [agit.vim](https://github.com/cohama/agit.vim)
- [committia.vim](https://github.com/rhysd/committia.vim)
- [gist-vim](https://github.com/mattn/gist-vim)
- [github-issues.vim](https://github.com/jaxbot/github-issues.vim)
- [gitv](https://github.com/gregsexton/gitv)
- [gv.vim](https://github.com/junegunn/gv.vim)
- [nerdtree-git-plugin](https://github.com/Xuyuanp/nerdtree-git-plugin)
- [vim-fugitive](https://github.com/tpope/vim-fugitive)
- [vim-gitgutter](https://github.com/airblade/vim-gitgutter)
- [vim-github-dashboard](https://github.com/junegunn/vim-github-dashboard)
- [vim-lawrencium](https://bitbucket.org/ludovicchabant/vim-lawrencium)
- [vim-signify](https://github.com/mhinz/vim-signify)
- [vimagit](https://github.com/jreybert/vimagit)

#### 写作工具

- [vim-grammarous](https://github.com/rhysd/vim-grammarous)
- [vim-online-thesaurus](https://github.com/beloglazov/vim-online-thesaurus)

#### 其他

- [CoVim](https://github.com/FredKSchott/CoVim)
- [FastFold](https://github.com/Konfekt/FastFold)
- [NrrwRgn](https://github.com/chrisbra/NrrwRgn)
- [calendar.vim](https://github.com/itchyny/calendar.vim)
- [goyo.vim](https://github.com/junegunn/goyo.vim)
- [sideways.vim](https://github.com/AndrewRadev/sideways.vim)
- [splitjoin.vim](https://github.com/AndrewRadev/splitjoin.vim)
- [targets.vim](https://github.com/wellle/targets.vim)
- [unicode.vim](https://github.com/chrisbra/unicode.vim)
- [vim-bracketed-paste](https://github.com/ConradIrwin/vim-bracketed-paste)
- [vim-devicons](https://github.com/ryanoasis/vim-devicons)
- [vim-diminactive](https://github.com/blueyed/vim-diminactive)
- [vim-fixkey](https://github.com/drmikehenry/vim-fixkey)
- [vim-gnupg](https://github.com/jamessan/vim-gnupg)
- [vim-hackernews](https://github.com/ryanss/vim-hackernews)
- [vim-move](https://github.com/matze/vim-move)
- [vim-multiple-cursors](https://github.com/terryma/vim-multiple-cursors)
- [vim-projectionist](https://github.com/tpope/vim-projectionist)
- [vim-rsi](https://github.com/tpope/vim-rsi)
- [vim-startify](https://github.com/mhinz/vim-startify)
- [vim-unimpaired](https://github.com/tpope/vim-unimpaired)

## 以文件类型区分

#### C and C++

- [a.vim](https://github.com/vim-scripts/a.vim)
- [clang_complete](https://github.com/Rip-Rip/clang_complete)
- [color_coded](https://github.com/jeaye/color_coded)
- [lh-cpp](https://github.com/LucHermitte/lh-cpp)

#### Clojure

- [paredit](https://github.com/kovisoft/paredit)
- [rainbow_parentheses.vim](https://github.com/junegunn/rainbow_parentheses.vim)
- [vim-clojure-highlight](https://github.com/guns/vim-clojure-highlight)
- [vim-fireplace](https://github.com/tpope/vim-fireplace)
- [vim-salve](https://github.com/tpope/vim-salve)
- [vim-sexp-mappings-for-regular-people](https://github.com/tpope/vim-sexp-mappings-for-regular-people)
- [vim-sexp](https://github.com/guns/vim-sexp)

#### HTML

- [emmet-vim](https://github.com/mattn/emmet-vim)
- [html5.vim](https://github.com/othree/html5.vim)

#### Go

- [gofmt.vim](https://github.com/tweekmonster/gofmt.vim)
- [hl-goimport.vim](https://github.com/tweekmonster/hl-goimport.vim)
- [vim-go](https://github.com/fatih/vim-go)
- [vim-godebug](https://github.com/jodosha/vim-godebug)

#### Java

- [vim-javacomplete2](https://github.com/artur-shaik/vim-javacomplete2)

#### Javascript

- [es.next.syntax.vim](https://github.com/othree/es.next.syntax.vim)
- [javascript-libraries-syntax.vim](https://github.com/othree/javascript-libraries-syntax.vim)
- [node-vim-debugger](https://github.com/sidorares/node-vim-debugger)
- [tern_for_vim](https://github.com/ternjs/tern_for_vim)
- [vim-esformatter](https://github.com/millermedeiros/vim-esformatter)
- [vim-javascript-syntax](https://github.com/jelera/vim-javascript-syntax)
- [vim-javascript](https://github.com/pangloss/vim-javascript)
- [vim-node](https://github.com/moll/vim-node)
- [yajs.vim](https://github.com/othree/yajs.vim)

#### Lua

- [vim-lua-ftplugin](https://github.com/xolox/vim-lua-ftplugin)
- [vim-lua-inspect](https://github.com/xolox/vim-lua-inspect)

#### Python

- [braceless.vim](https://github.com/tweekmonster/braceless.vim)
- [impsort.vim](https://github.com/tweekmonster/impsort.vim)
- [jedi-vim](https://github.com/davidhalter/jedi-vim)
- [python-mode](https://github.com/klen/python-mode)
- [vim-flake8](https://github.com/nvie/vim-flake8)

#### TeX

- [vimtex](https://github.com/lervag/vimtex)

#### VimL

- [vim-scriptease](https://github.com/tpope/vim-scriptease)


================================================
FILE: chapter/Miscellaneous.md
================================================
# 杂项

## 附加资源

## Vim 配置集合

## 内置插件

## 映射大写锁定键(CapsLock)到控制键(Ctrl)

## 复活节彩蛋

## 为什么用 hjkl 移动光标?



================================================
FILE: chapter/Technical quirks.md
================================================
# 技术怪癖

## NUL 符用新行表示

文件中的 NUL 符 (`\0`) 在内存中会被存储为换行符 (`\n`) 且
在缓冲区中显示为 `^@`.

在 `man 7 ascii` 和 `:h NL-used-for-Nul` 中查看更多信息。


================================================
FILE: chapter/bracketed-paste.md
================================================
## 粘贴归类 (要不为什么我总要设置‘粘贴’?)

粘贴归类模式使得终端虚拟器可以区分键入文本和粘贴文本。

你是否曾经尝试过向 Vim 粘贴过代码,结果弄得一团糟?

这只会在你通过 `cmd+v`, `shift-insert`, `middle-click` 等等命令进行粘贴时发生。
因为那时你只是在向终端虚拟器里丢文本。Vim 并不知道你在粘贴文本,它天真地认为你是一个熟练的打字员。因此,它尝试排版,但是失败了。

如果你使用 Vim 命令集里的粘贴,比如 `"+p` ,那这就不会成为问题,因为 Vim 知道你做的是粘贴操作。

为了解决这个,你需要设置粘贴 `:set paste` ,以便获取粘贴现状。 参考 `:h 'paste'` 和 `:h 'pastetoggle'`.

如果你已经受够了不停地切换 `'paste'` ,看一看这个不错的插件能为你做什么:[粘贴归类](https://github.com/ConradIrwin/vim-bracketed-paste)。

插件作者的拓展阅读:[欢迎点击](http://cirw.in/blog/bracketed-paste).

**Neovim**: Neovim 努力无缝地完成这些工作,并在终端虚拟器支持时自动设定粘贴归类模式。


================================================
FILE: chapter/editing-huge-files-is-slow.md
================================================
## 编辑大文件很慢

大文件最大的问题,就是 Vim 会一次性读取整个文件。这一过程的完成取决于内部如何提供缓存空间。
([Vim 开发的讨论](https://groups.google.com/forum/#!topic/vim_dev/oY3i8rqYGD4/discussion))

如果你只是想读取, `tail hugefile | vim -` 会是一个很好的解决方法.

如果不用语法,设定和插件,你也能生活自理一段时间:

```
$ vim -u NONE -N
```

这将使得导航明显提速,因为代价高昂的语法高亮正则表达式不再被使用。你也应该让 Vim 不要使用交换文件和 Vim 信息文件,以避免写入时的长延迟。

```
$ vim -n -u NONE -i NONE -N
```

简而言之,真的写入超大文件的时候尽量别用 Vim。 :\


================================================
FILE: chapter/editing-small-files-is-slow.md
================================================
## 编辑小文件很慢

对性能有重大影响的有两个方面:

1. 复杂的**正则表达式**。尤其是 Ruby 语法文件导致人们过去一直慢慢吞吞。([Debugging syntax files](#debugging-syntax-files)里也有说明。)
2. **页面刷新**。一些特性强制所有行都刷新。

| 典型败笔 | 原因? | 解决方法? |
|-----------------|------|-----------|
| `:set cursorline`        | 导致所有行刷新。 | `:set nocursorline` |
| `:set cursorcolumn`      | 导致所有行刷新。 | `:set nocursorcolumn` |
| `:set relativenumber`    | 导致所有行刷新。 | `:set norelativenumber` |
| `:set foldmethod=syntax` | 语法文件算减速的话,这无异于刹车。 | `:set foldmethod=manual`, `:set foldmethod=marker` or [快速折叠](https://github.com/Konfekt/FastFold) |
| `:set synmaxcol=3000`    | 根据内部表示规则, Vim 一般不待见对很长的行。这一设定导致3000列时才会把所在行高亮。 | `:set synmaxcol=200` |
| matchparen.vim           | 使用默认加载。使用正则表达式去匹配括回。 | 禁用插件: `:h matchparen` |

**注意**: 只有当真的遭遇实质的性能缺陷时,你才需要做这些改进。多数情况下,上面提到的这些方面还都凑合。


================================================
FILE: chapter/function-search-undo.md
================================================
## 无法重复函数中执行的搜索

- 一个命令的搜索关键词(`/`, `:代替`, ...)改变了“上一次搜索所用的关键词”。(这个改变保存在 `/` 的注册表里;使用 `:echo @/` 可以打印出来)
- 一个简单的文本修改可以用 `.` 再次执行。(这个执行保存在 `.` 的注册表里;使用 `:echo @.` 可以打印出来)

如果你在一个函数里做以上操作,两件都_not_会是那么回事儿。所以你不能简单地在一个函数里高亮词汇同时再用这个函数做文本修改。 

帮助: `:h function-search-undo`

================================================
FILE: chapter/map-capslock-to-control.md
================================================
## 映射大写锁定键(CapsLock)到控制键(Ctrl)

大写锁定键属于键盘上最少用到的按键,但是它要比控制键更加容易按到,
因为它位于你手放在键盘时的[起始行](https://raw.githubusercontent.com/mhinz/vim-galore/master/contents/images/content-homerow.png)。
如果你敲很多代码的话,映射大写锁定键(CapsLock)到控制键(Ctrl)可以有效降低
[重复使力伤害](https://de.wikipedia.org/wiki/Repetitive-Strain-Injury-Syndrom) (ps:为什么将 jk 映射为 esc,而不是 jj,重复点击同一个按键对手指伤害很大)。

友情提示:当你习惯这个设定后,你就离不开它了。

**OSX**:

`System Preferences -> Keyboard -> Keyboard Tab -> Modifier Keys`. 变更
"CapsLock" 为 "Control"。

**Linux**:

为了使按键生效,请把以下几行放入 `~/.xmodmap` 文件:

    remove Lock = Caps_Lock
    keysym Caps_Lock = Control_L
    add Control = Control_L

用以下命令使之生效<br> `$ xmodmap ~/.xmodmap`。

替代方法有[caps2esc](https://github.com/oblitum/caps2esc) 或者
[xcape](https://github.com/alols/xcape)。

**Windows**:

请参看 [superuser.com: 在Windows8.1映射大写锁定键到控制键](http://superuser.com/questions/764782/map-caps-lock-to-control-in-windows-8-1)。


================================================
FILE: chapter/standard-plugins.md
================================================
## 内置插件

出乎很多人的意料,Vim自己默认加载了大把大把的插件。启动 Vim 后,用`:scriptnames`查看所有加载的源文件

这些文件多数永远不会被用到,所以请禁止如你所见的以下插件。
这些插件仍旧会在源文件列出,但是当Vim启动时,只有第一行会被读取,而之后的配置,命令和日志都不会执行。

| 插件     | 禁用                  | 帮助 |
|------------|-------------------------------------|------|
| 2html      | `let g:loaded_2html_plugin = 1`     | `:h 2html` |
| getscript  | `let g:loaded_getscriptPlugin = 1`  | `:h pi_getscript` |
| gzip       | `let g:loaded_gzip = 1`             | `:h pi_gzip` |
| logipat    | `let g:loaded_logipat = 1`          | `:h pi_logipat` |
| matchparen | `let g:loaded_matchparen = 1`       | `:h pi_paren` |
| netrw      | `let g:loaded_netrwPlugin = 1`      | `:h pi_netrw` |
| rrhelper   | `let g:loaded_rrhelper = 1`         | `:e $VIMRUNTIME/plugin/rrhelper.vim` |
| spellfile  | `let g:loaded_spellfile_plugin = 1` | `:h spellfile.vim` |
| tar        | `let g:loaded_tarPlugin = 1`        | `:h pi_tar` |
| vimball    | `let g:loaded_vimballPlugin = 1`    | `:h pi_vimball` |
| zip        | `let g:loaded_zipPlugin = 1`        | `:h pi_zip` |


================================================
FILE: chapter/vim-distributions.md
================================================
## Vim 配置集合

Vim 配置集合是集成多多种插件以及相关配置的组合。

高阶用户总是知道如何构建自己的编辑器,所以配置集合一般是针对初学者。
如果你想要尝试,那么将面临一个辩证的想法:加入很多额外的东西来学习 Vim 是否会让这变得更加简单。

我知道很多人不想在配置编辑器上花过多时间(但实际上,当你卡住时,你就会不停地花时间定制自己的 vimrc)
因此,想要节约时间,那么就因该真正的去了解和学习 Vim 原生功能,只有这样你才能中获益。

再次强调一下:“一个程序员应当懂得他的工具”。

总之,如果你知道自己在做什么,你也许能从以下几个 Vim 配置集合中获得一些灵感。

- [cream](http://cream.sourceforge.net)
- [janus](https://github.com/carlhuda/janus.git)
- [spacevim](https://github.com/SpaceVim/SpaceVim)
- [spf13](https://github.com/spf13/spf13-vim)


================================================
FILE: chapter/why-hjkl-for-navigation.md
================================================
## 为什么用hjkl移动光标?

当 [Bill Joy](https://en.wikipedia.org/wiki/Bill_Joy) 创建[vi](https://en.wikipedia.org/wiki/Vi),Vim 的前身时, 他的工作是在一台[ADM-3A](https://en.wikipedia.org/wiki/ADM-3A)完成的,而这个机器没有用别的键控制光标,而正是如你猜到的 hjkl 作为光标控制键。

键盘布局: [请点击](https://raw.githubusercontent.com/mhinz/vim-galore/master/contents/images/content-adm-3a-layout.jpg)

这也告诉了我们为什么 Unix 系统会以`~`代表主目录。



================================================
FILE: contents/minimal-vimrc.vim
================================================
"
" A (not so) minimal vimrc.
"

" You want Vim, not vi. When Vim finds a vimrc, 'nocompatible' is set anyway.
" We set it explicitely to make our position clear!
set nocompatible

filetype plugin indent on  " Load plugins according to detected filetype.
syntax on                  " Enable syntax highlighting.

set autoindent             " Indent according to previous line.
set expandtab              " Use spaces instead of tabs.
set softtabstop =4         " Tab key indents by 4 spaces.
set shiftwidth  =4         " >> indents by 4 spaces.
set shiftround             " >> indents to next multiple of 'shiftwidth'.

set backspace   =indent,eol,start  " Make backspace work as you would expect.
set hidden                 " Switch between buffers without having to save first.
set laststatus  =2         " Always show statusline.
set display     =lastline  " Show as much as possible of the last line.

set showmode               " Show current mode in command-line.
set showcmd                " Show already typed keys when more are expected.

set incsearch              " Highlight while searching with / or ?.
set hlsearch               " Keep matches highlighted.

set ttyfast                " Faster redrawing.
set lazyredraw             " Only redraw when necessary.

set splitbelow             " Open new windows below the current window.
set splitright             " Open new windows right of the current window.

set cursorline             " Find the current line quickly.
set wrapscan               " Searches wrap around end-of-file.
set report      =0         " Always report changed lines.
set synmaxcol   =200       " Only highlight the first 200 columns.

set list                   " Show non-printable characters.
if has('multi_byte') && &encoding ==# 'utf-8'
  let &listchars = 'tab:▸ ,extends:❯,precedes:❮,nbsp:±'
else
  let &listchars = 'tab:> ,extends:>,precedes:<,nbsp:.'
endif

" The fish shell is not very compatible to other shells and unexpectedly
" breaks things that use 'shell'.
if &shell =~# 'fish$'
  set shell=/bin/bash
endif

" Put all temporary files under the same directory.
" https://github.com/mhinz/vim-galore#handling-backup-swap-undo-and-viminfo-files
set backup
set backupdir   =$HOME/.vim/files/backup//
set backupext   =-vimbackup
set backupskip  =
set directory   =$HOME/.vim/files/swap//
set updatecount =100
set undofile
set undodir     =$HOME/.vim/files/undo//
set viminfo     ='100,n$HOME/.vim/files/info/viminfo


================================================
FILE: tools/chinese_linter.vim
================================================
scriptencoding utf-8
" 忽略的错误
let g:chinese_linter_disabled_nr = get(g:,'chinese_linter_disabled_nr', [])
" 中文标点符号(更全)
let s:CHINEXE_PUNCTUATION = "\u3002\uff1f\uff01\uff0c\u3001\uff1b\uff1a\u201c\u201d\u2018\u2019\uff08\uff09\u300a\u300b\u3008\u3009\u3010\u3011\u300e\u300f\u300c\u300d\ufe43\ufe44\u3014\u3015\u2026\u2014\uff5e\ufe4f\uffe5"
" 英文标点
let s:punctuation = ','
" 中文标点符号
let s:punctuation_cn = '[\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b]'
" 中文汉字
let s:chars_cn = '[\u4e00-\u9fa5]'
" 数字
let s:numbers = '[0-9]'
" 英文字母
let s:chars = '[a-zA-Z]'
let s:ERRORS = {
            \ 'E001' : ['中文字符后存在英文标点', s:chars_cn . s:punctuation],
            \ 'E002' : ['中英文之间没有空格', '\(' . s:chars_cn . s:chars . '\)\|\(' . s:chars . s:chars_cn . '\)'],
            \ 'E003' : ['中文与数字之间没有空格', '\(' . s:chars_cn . s:numbers . '\)\|\(' . s:numbers . s:chars_cn . '\)'],
            \ 'E004' : ['中文标点之后存在空格',  s:punctuation_cn . '\s\+'],
            \ 'E005' : ['行尾含有空格', '\s\+$'],
            \ }

command! -nargs=? CheckChinese call s:check(<q-args>)

function! s:check(...) abort
    let s:file = getline(1,'$')
    let s:bufnr = bufnr('%')
    let s:linenr = 0
    let s:colnr = 0
    let s:qf = []
    for l:line in s:file
        let s:linenr += 1
        call s:parser(l:line)
    endfor
    let s:linenr = 0
    let s:colnr = 0
    if !empty(s:qf)
        let g:wsd = s:qf
        call s:update_qf(s:qf)
        copen
    else
        call setqflist([])
        cclose
    endif
endfunction

function! s:parser(line) abort
    for l:error_nr in keys(s:ERRORS)
        if index(g:chinese_linter_disabled_nr, l:error_nr) == -1
            call s:find_error(l:error_nr, a:line)
        endif
    endfor
endfunction

function! s:find_error(nr, line) abort
    let l:error = s:ERRORS[a:nr]
    let s:colnr = matchend(a:line, l:error[1])
    if s:colnr != -1
        call s:add_to_qf(a:nr)
    endif
endfunction

function! s:add_to_qf(nr) abort
    let l:error_item = {
                \ 'bufnr' : s:bufnr,
                \ 'lnum' : s:linenr,
                \ 'col' : s:colnr,
                \ 'vcol' : 0,
                \ 'text' : a:nr . ' ' . s:ERRORS[a:nr][0],
                \ 'nr' : a:nr,
                \ 'type' : 'E'
                \ }
    call add(s:qf, l:error_item)
endfunction

" TODO 加入语法分析


function! s:update_qf(dict) abort
    call setqflist(a:dict)
endfunction
Download .txt
gitextract_9qcjjajt/

├── .gitignore
├── CONTRIBUTING.md
├── LICENSE
├── PLUGINS.md
├── README.md
├── chapter/
│   ├── Common problems.md
│   ├── List-Of-Colorschemes.md
│   ├── List-Of-Plugins.md
│   ├── Miscellaneous.md
│   ├── Technical quirks.md
│   ├── bracketed-paste.md
│   ├── editing-huge-files-is-slow.md
│   ├── editing-small-files-is-slow.md
│   ├── function-search-undo.md
│   ├── map-capslock-to-control.md
│   ├── standard-plugins.md
│   ├── vim-distributions.md
│   └── why-hjkl-for-navigation.md
├── contents/
│   └── minimal-vimrc.vim
└── tools/
    └── chinese_linter.vim
Condensed preview — 20 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (66K chars).
[
  {
    "path": ".gitignore",
    "chars": 5,
    "preview": "tags\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 10032,
    "preview": "有兴趣加入本项目的话,请关注下面的认领列表,选择相应的章节翻译,或者协助校验正在翻译的项目。如果有兴趣加入,可以fork本项目,开始翻译后提交PR,便于我们协助校验,不必翻译结束后才提交PR.\n\n## 认领方式\n\n**开issue**\n\n`"
  },
  {
    "path": "LICENSE",
    "chars": 20128,
    "preview": "Attribution-ShareAlike 4.0 International\n\n=======================================================================\n\nCreat"
  },
  {
    "path": "PLUGINS.md",
    "chars": 13431,
    "preview": "## 插件列表\n\n<!-- vim-markdown-toc GFM -->\n\n- [颜色主题](#颜色主题)\n- [按功能分类](#按功能分类)\n  - [文本对齐](#文本对齐)\n  - [语法检查](#语法检查)\n  - [代码补全]"
  },
  {
    "path": "README.md",
    "chars": 207,
    "preview": "<div align='center'>\n  <h1>Vim 从入门到精通</h1>\n  <br /><br />\n</div>\n\n<!-- vim-markdown-toc GFM -->\n\n<!-- vim-markdown-toc -"
  },
  {
    "path": "chapter/Common problems.md",
    "chars": 97,
    "preview": "# 常见问题\n\n## 编辑小文件很慢\n\n## 编辑大文件很慢\n\n## 相同部分粘贴 (要不为什么我总要设置‘粘贴’?)\n\n## 使用终端中 Esc 键时的延迟\n\n## 无法重复函数中执行的搜索\n"
  },
  {
    "path": "chapter/List-Of-Colorschemes.md",
    "chars": 929,
    "preview": "# 配色方案列表\n\n这儿列举了一些常用的Vim配色方案:\n\n- [acme-colors](https://github.com/plan9-for-vimspace/acme-colors)\n- [base16](https://gith"
  },
  {
    "path": "chapter/List-Of-Plugins.md",
    "chars": 8975,
    "preview": "## 插件列表\n\n#### [以功能区分](#以功能区分-1)\n\n- [文本对齐](#文本对齐)\n- [构建和可疑代码标记](#构建和可疑代码标记)\n- [代码补全](#代码补全)\n- [Cycle](#cycle)\n- [注释工具](#注"
  },
  {
    "path": "chapter/Miscellaneous.md",
    "chars": 99,
    "preview": "# 杂项\n\n## 附加资源\n\n## Vim 配置集合\n\n## 内置插件\n\n## 映射大写锁定键(CapsLock)到控制键(Ctrl)\n\n## 复活节彩蛋\n\n## 为什么用 hjkl 移动光标?\n\n"
  },
  {
    "path": "chapter/Technical quirks.md",
    "chars": 127,
    "preview": "# 技术怪癖\n\n## NUL 符用新行表示\n\n文件中的 NUL 符 (`\\0`) 在内存中会被存储为换行符 (`\\n`) 且\n在缓冲区中显示为 `^@`.\n\n在 `man 7 ascii` 和 `:h NL-used-for-Nul` 中查"
  },
  {
    "path": "chapter/bracketed-paste.md",
    "chars": 563,
    "preview": "## 粘贴归类 (要不为什么我总要设置‘粘贴’?)\n\n粘贴归类模式使得终端虚拟器可以区分键入文本和粘贴文本。\n\n你是否曾经尝试过向 Vim 粘贴过代码,结果弄得一团糟?\n\n这只会在你通过 `cmd+v`, `shift-insert`, `"
  },
  {
    "path": "chapter/editing-huge-files-is-slow.md",
    "chars": 390,
    "preview": "## 编辑大文件很慢\n\n大文件最大的问题,就是 Vim 会一次性读取整个文件。这一过程的完成取决于内部如何提供缓存空间。\n([Vim 开发的讨论](https://groups.google.com/forum/#!topic/vim_de"
  },
  {
    "path": "chapter/editing-small-files-is-slow.md",
    "chars": 792,
    "preview": "## 编辑小文件很慢\n\n对性能有重大影响的有两个方面:\n\n1. 复杂的**正则表达式**。尤其是 Ruby 语法文件导致人们过去一直慢慢吞吞。([Debugging syntax files](#debugging-syntax-files"
  },
  {
    "path": "chapter/function-search-undo.md",
    "chars": 265,
    "preview": "## 无法重复函数中执行的搜索\n\n- 一个命令的搜索关键词(`/`, `:代替`, ...)改变了“上一次搜索所用的关键词”。(这个改变保存在 `/` 的注册表里;使用 `:echo @/` 可以打印出来)\n- 一个简单的文本修改可以用 `"
  },
  {
    "path": "chapter/map-capslock-to-control.md",
    "chars": 888,
    "preview": "## 映射大写锁定键(CapsLock)到控制键(Ctrl)\n\n大写锁定键属于键盘上最少用到的按键,但是它要比控制键更加容易按到,\n因为它位于你手放在键盘时的[起始行](https://raw.githubusercontent.com/m"
  },
  {
    "path": "chapter/standard-plugins.md",
    "chars": 1041,
    "preview": "## 内置插件\n\n出乎很多人的意料,Vim自己默认加载了大把大把的插件。启动 Vim 后,用`:scriptnames`查看所有加载的源文件\n\n这些文件多数永远不会被用到,所以请禁止如你所见的以下插件。\n这些插件仍旧会在源文件列出,但是当V"
  },
  {
    "path": "chapter/vim-distributions.md",
    "chars": 483,
    "preview": "## Vim 配置集合\n\nVim 配置集合是集成多多种插件以及相关配置的组合。\n\n高阶用户总是知道如何构建自己的编辑器,所以配置集合一般是针对初学者。\n如果你想要尝试,那么将面临一个辩证的想法:加入很多额外的东西来学习 Vim 是否会让这变"
  },
  {
    "path": "chapter/why-hjkl-for-navigation.md",
    "chars": 365,
    "preview": "## 为什么用hjkl移动光标?\n\n当 [Bill Joy](https://en.wikipedia.org/wiki/Bill_Joy) 创建[vi](https://en.wikipedia.org/wiki/Vi),Vim 的前身时"
  },
  {
    "path": "contents/minimal-vimrc.vim",
    "chars": 2465,
    "preview": "\"\n\" A (not so) minimal vimrc.\n\"\n\n\" You want Vim, not vi. When Vim finds a vimrc, 'nocompatible' is set anyway.\n\" We set "
  },
  {
    "path": "tools/chinese_linter.vim",
    "chars": 2407,
    "preview": "scriptencoding utf-8\n\" 忽略的错误\nlet g:chinese_linter_disabled_nr = get(g:,'chinese_linter_disabled_nr', [])\n\" 中文标点符号(更全)\nle"
  }
]

About this extraction

This page contains the full source code of the wsdjeg/vim-galore-zh_cn GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 20 files (62.2 KB), approximately 20.5k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!