我经常使用vim,但是我的工作流程通常会迫使我与其他IDE进行交互,所以我不是一个像神一样的vim poweruser,也不是我想要很快成为其他人。 Vim不是我的IDE,也不是我想要的。这是一个快速而轻巧的编辑器,并不妨碍我。
我正在寻找简单的使用和配置,而不是超级能力或金星效率。
到目前为止,我一直在使用我的代码段预加载几个寄存器,然后保留一个备忘单,其中哪个寄存器具有哪个文本块。但是我的寄存器用完了,一个单字母数字字母并没有立即提醒我我预装的是什么。
存储任意数量的原始文本块的最简单方法是什么,然后使用单个关键字和1个热键(按任意顺序:关键字<>热键)检索它们。
我想我可以开始编写仅将文本块打印到当前缓冲区的命名函数。这几乎就是我所需要的,但我希望能够更轻松地维护/更新我的代码段集合。
是否有任何覆盖我的用例的极简主义插件,或者我是否需要坚持我的.vimrc / python-commands方法?
次要更新 我没有意识到你可以用枫木连接这么多字母,这可能提供我需要的魔力。然后我仍然需要别名回到一些更大的函数集(可能使用python来定义命令)。
答案 0 :(得分:6)
如果您需要无插件解决方案,可以使用:
<强>缩写强>
:iabbrev obj var foo = {};<Left><Left>
:iabbrev func function foo() {<CR><CR>}<Up><Tab>
:iabbrev lipsum Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer diam augue, egestas quis, aliquam ut, venenatis ut, quam. Quisque ut augue. Integer non neque a lectus venenatis fermentum. Morbi quis eros nec elit molestie vehicula. Integer nunc lacus, sodales posuere, rutrum quis, blandit at, mi. Vivamus imperdiet wisi vel mauris. Morbi mattis ante non metus. Sed turpis dui, fermentum ut, aliquam eget, vulputate ullamcorper, pede. Nam non dolor. Etiam lobortis, urna id bibendum convallis, ligula augue auctor eros, a dictum sapien mi a tellus. Proin vel justo. Nunc malesuada turpis a sapien.
如果你不介意尾随空格,你可以展开那些<Space>
,或者<C-]>
。{/ p>
请参阅:help abbreviations
。
插入模式映射
您可以使用<leader>
创建任何复杂映射。
这里的密钥(双关语)只是选择一个很少使用的密钥,并将其用作映射的命名空间。例如,在我的法语AZERTY键盘上,我有§
键完全没用(不在Vim中使用,不用于法语,不用于我使用的任何编程语言)。如果我想构建一个映射库,我会将它用作这些片段的“领导者”:
:inoremap §obj var foo = {};<Left><Left>
:inoremap §func function foo() {<CR><CR>}<Up><Tab>
:inoremap §lipsum Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Integer diam augue, egestas quis, aliquam ut, venenatis ut, quam. Quisque ut augue. Integer non neque a lectus venenatis fermentum. Morbi quis eros nec elit molestie vehicula. Integer nunc lacus, sodales posuere, rutrum quis, blandit at, mi. Vivamus imperdiet wisi vel mauris. Morbi mattis ante non metus. Sed turpis dui, fermentum ut, aliquam eget, vulputate ullamcorper, pede. Nam non dolor. Etiam lobortis, urna id bibendum convallis, ligula augue auctor eros, a dictum sapien mi a tellus. Proin vel justo. Nunc malesuada turpis a sapien.
无论选择缩写还是映射,都可以将所有缩写或映射保存在专用文件中:
~/.vim/snippets.vim
并在~/.vimrc
:
runtime snippets.vim
如果您决定将该文件放在~/.vim/
目录之外的某个位置,则可以使用以下内容进行搜索:
source ~/path/to/snippets.vim
<强> 修改 强>
关于<leader>
...
<leader>
实际上并不那么特别:您通常可以将其视为变量,但就像在数据库中插入$foo
一样会插入$foo
的值,注册{{ 1}}将注册<leader>something
。
假设您创建了自定义{current value of mapleader}something
映射:
<leader>
Vim注册let mapleader = ","
map <leader>b :bnext<CR>
。如果您决定稍后在当前会话中更改,b
:
<leader>
你还有:let mapleader = "%"
。只有进一步的映射才会使用新的,b
:
<leader>
您同时获得map <leader>b :bnext<CR>
和,b
。
%b
表示仅。在使用中,它只是<leader>
或,b
。