linux vi gf,avim: 非常好的 vim 编辑器配置,自用

Ultimate%20Vimrc.svg

The Ultimate vimrc

Over the last 10 years, I have used and tweaked Vim. This configuration is the ultimate vimrc (or at least my version of it).

There are two versions:

*The Basic: If you want something small just copy basic.vim into your ~/.vimrc and you will have a good basic setup

The Awesome: Includes a ton of useful plugins, color schemes, and configurations

I would, of course, recommend using the awesome version.

How to install the Awesome version?

The awesome version includes a lot of great plugins, configurations and color schemes that make Vim a lot better. To install it simply do following from your terminal:

git clone --depth=1 https://gitee.com/yesou/avim.git ~/.vim_runtime

sh ~/.vim_runtime/install_awesome_vimrc.sh

Fonts

I recommend using IBM Plex Mono font (it's an open-source and awesome font that can make your code beautiful). The Awesome vimrc is already setup to try to use it.

Some other fonts that Awesome will try to use:

How to install the Basic version?

The basic version is just one file and no plugins. Just copy basic.vim and paste it into your vimrc.

The basic version is useful to install on remote servers where you don't need many plugins, and you don't do many edits.

git clone --depth=1 https://gitee.com/yesou/avim.git ~/.vim_runtime

sh ~/.vim_runtime/install_basic_vimrc.sh

How to install on Windows?

Use msysgit to checkout the repository and run the installation instructions above. No special instructions needed ;-)

How to install on Linux

If you have vim aliased as vi instead of vim, make sure to either alias it: alias vi=vim. Otherwise, apt-get install vim

How to update to latest version?

Just do a git rebase!

cd ~/.vim_runtime

git pull --rebase

Some screenshots

Colors when editing a Python file:

b6372d6a74122d63e85433eef9fc2a62.png

Opening recently opened files with the mru.vim plugin:

90967897a57771e3a941e2196d352049.png

NERD Tree plugin in a terminal window:

34b3d75f146f8727930a9c04d6d7d107.png

Distraction free mode using goyo.vim and vim-zenroom2:

d0a1e451b915654954e23cdc32b85e45.png

Included Plugins

I recommend reading the docs of these plugins to understand them better. Each plugin provides a much better Vim experience!

ack.vim: Vim plugin for the_silver_searcher (ag) or ack -- a wicked fast grep

bufexplorer.zip: Quickly and easily switch between buffers. This plugin can be opened with

ctrlp.vim: Fuzzy file, buffer, mru and tag finder. It's mapped to

lightline.vim: A light and configurable statusline/tabline for Vim

NERD Tree: A tree explorer plugin for vim

mru.vim: Plugin to manage Most Recently Used (MRU) files. This plugin can be opened with

open_file_under_cursor.vim: Open file under cursor when pressing gf

pathogen.vim: Manage your vim runtimepath

snipmate.vim: snipmate.vim aims to be a concise vim script that implements some of TextMate's snippets features in Vim

syntastic: Syntax checking hacks for vim

vim-commentary: Comment stuff out. Use gcc to comment out a line (takes a count), gc to comment out the target of a motion. gcu uncomments a set of adjacent commented lines.

vim-expand-region: Allows you to visually select increasingly larger regions of text using the same key combination

vim-fugitive: A Git wrapper so awesome, it should be illegal

vim-indent-object: Defines a new text object representing lines of code at the same indent level. Useful for python/vim scripts

vim-multiple-cursors: Sublime Text style multiple selections for Vim, CTRL+N is remapped to CTRL+S (due to YankRing)

vim-yankstack: Maintains a history of previous yanks, changes and deletes

Remove all clutter and focus only on the essential. Similar to iA Writer or Write Room Read more here

Included color schemes

Included modes

How to include your own stuff?

After you have installed the setup, you can create ~/.vim_runtime/my_configs.vim to fill in any configurations that are important for you. For instance, my my_configs.vim looks like this:

~/.vim_runtime (master)> cat my_configs.vim

map ct :cd ~/Desktop/Todoist/todoist

map cw :cd ~/Desktop/Wedoist/wedoist

You can also install your plugins, for instance, via pathogen you can install vim-rails:

cd ~/.vim_runtime

git clone git://github.com/tpope/vim-rails.git sources_non_forked/vim-rails

Key Mappings

The leader is ,, so whenever you see it means ,.

Plugin related mappings

Open bufexplorer to see and manage the current buffers (o):

map o :BufExplorer

Open MRU.vim to see the recently open files (f):

map f :MRU

Open ctrlp.vim plugin to quickly find a file or a buffer (j or f):

let g:ctrlp_map = ''

NERD Tree mappings:

map nn :NERDTreeToggle

map nb :NERDTreeFromBookmark

map nf :NERDTreeFind

goyo.vim and vim-zenroom2 lets you only focus on one thing at a time. It removes all the distractions and centers the content. It has a special look when editing Markdown, reStructuredText and textfiles. It only has one mapping. (z)

map z :Goyo

Normal mode mappings

Fast saving of a buffer (w):

nmap w :w!

Map to / (search) and + to ? (backwards search):

map /

map ?

map :noh

Disable highlights when you press :

map :noh

Smart way to move between windows (j etc.):

map j

map k

map h

map l

Closing of the current buffer(s) (bd and (ba)):

" Close current buffer

map bd :Bclose

" Close all buffers

map ba :1,1000 bd!

Useful mappings for managing tabs:

map tn :tabnew

map to :tabonly

map tc :tabclose

map tm :tabmove

" Opens a new tab with the current buffer's path

" Super useful when editing files in the same directory

map te :tabedit =expand("%:p:h")/

Switch CWD to the directory of the open buffer:

map cd :cd %:p:h:pwd

Open ack.vim for fast search:

map g :Ack

Quickly open a buffer for scripbble:

map q :e ~/buffer

Toggle paste mode on and off:

map pp :setlocal paste!

Visual mode mappings

Visual mode pressing * or # searches for the current selection:

vnoremap * :call VisualSelection('f')

vnoremap # :call VisualSelection('b')

When you press gv you Ack.vim after the selected text:

vnoremap gv :call VisualSelection('gv', '')

When you press r you can search and replace the selected text:

vnoremap r :call VisualSelection('replace')

Surround the visual selection in parenthesis/brackets/etc.:

vnoremap $1 `>a)`

vnoremap $2 `>a]`

vnoremap $3 `>a}`

vnoremap $$ `>a"`

vnoremap $q `>a'`

vnoremap $e `>a"`

Insert mode mappings

Quickly insert parenthesis/brackets/etc.:

inoremap $1 ()i

inoremap $2 []i

inoremap $3 {}i

inoremap $4 {o}O

inoremap $q ''i

inoremap $e ""i

inoremap $t <>i

Insert the current date and time (useful for timestamps):

iab xdate =strftime("%d/%m/%y %H:%M:%S")

Command line mappings

$q is super useful when browsing on the command line. It deletes everything until the last slash:

cno $q eDeleteTillSlash()

Bash like keys for the command line:

cnoremap

cnoremap

cnoremap

cnoremap

cnoremap

Write the file as sudo (works only on Unix). Super useful when you open a file and you don't have permissions to save your changes. Vim tip:

:W

Spell checking

Pressing ss will toggle spell checking:

map ss :setlocal spell!

Shortcuts using instead of special characters:

map sn ]s

map sp [s

map sa zg

map s? z=

Cope

Query :help cope if you are unsure what cope is. It's super useful!

When you search with Ack.vim, display your results in cope by doing:

cc

To go to the next search result do:

n

To go to the previous search results do:

p

Cope mappings:

map cc :botright cope

map co ggVGy:tabnew:set syntax=qfpgg

map n :cn

map p :cp

How to uninstall

Just do following:

Remove ~/.vim_runtime

Remove any lines that reference .vim_runtime in your ~/.vimrc

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值