1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-02 22:30:04 +08:00
This commit is contained in:
wsdjeg 2017-03-07 22:11:41 +08:00
parent b592fe6b8e
commit 3e486f203e
5 changed files with 79 additions and 38 deletions

View File

@ -72,7 +72,9 @@ let g:spacevim_vim_plug_installed = 0
" >
" let g:spacevim_plugin_bundle_dir = '~/.cache/vimplugs'
" <
let g:spacevim_plugin_bundle_dir = $HOME. join(['', '.cache', 'vimfiles', ''], SpaceVim#api#import('file').separator)
let g:spacevim_plugin_bundle_dir
\ = $HOME. join(['', '.cache', 'vimfiles', ''],
\ SpaceVim#api#import('file').separator)
""
" Enable/Disable realtime leader guide. Default is 0.
" >
@ -160,7 +162,7 @@ let g:spacevim_filemanager = 'vimfiler'
""
" The default plugin manager of SpaceVim. Default is 'dein'.
" Options are dein, neobundle, or vim-plug.
let g:spacevim_plugin_manager = 'dein' " neobundle or dein or vim-plug
let g:spacevim_plugin_manager = 'dein'
""
" Enable/Disable checkinstall on SpaceVim startup. Default is 1.
" >
@ -249,8 +251,10 @@ let g:spacevim_src_root = 'E:\sources\'
""
" The host file url. This option is for Chinese users who can not use
" Google and Twitter.
let g:spacevim_hosts_url = 'https://raw.githubusercontent.com/racaljk/hosts/master/hosts'
let g:spacevim_wildignore = '*/tmp/*,*.so,*.swp,*.zip,*.class,tags,*.jpg,
let g:spacevim_hosts_url
\ = 'https://raw.githubusercontent.com/racaljk/hosts/master/hosts'
let g:spacevim_wildignore
\ = '*/tmp/*,*.so,*.swp,*.zip,*.class,tags,*.jpg,
\*.ttf,*.TTF,*.png,*/target/*,
\.git,.svn,.hg,.DS_Store'
@ -410,4 +414,4 @@ endfunction
" vim:set et sw=2:
" vim:set et sw=2 cc=80:

View File

@ -81,21 +81,25 @@ function! SpaceVim#default#SetOptions() abort
set undodir=$HOME/.data/undofile
set backupdir=$HOME/.data/backup
set directory=$HOME/.data/swap
set nofoldenable " no fold enable
" no fold enable
set nofoldenable
set nowritebackup
set matchtime=0
set ruler
set showmatch
set showmode
"menuone: show the pupmenu when only one match
set completeopt=menu,menuone,longest " disable preview scratch window,
set complete=.,w,b,u,t " h: 'complete'
set pumheight=15 " limit completion menu height
" disable preview scratch window,
set completeopt=menu,menuone,longest
" h: 'complete'
set complete=.,w,b,u,t
" limit completion menu height
set pumheight=15
set scrolloff=7
set incsearch
set hlsearch
set laststatus=2
set completeopt=longest,menu
set wildignorecase
set mouse=
set hidden
@ -154,8 +158,6 @@ endfunction
function! SpaceVim#default#SetMappings() abort
"mapping
"全局映射
"也可以通过'za'打开或者关闭折叠
imap <silent><expr><TAB> SpaceVim#mapping#tab()
smap <expr><TAB> neosnippet#expandable_or_jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : "\<TAB>"
inoremap <silent><expr><CR> SpaceVim#mapping#enter()
@ -165,16 +167,12 @@ function! SpaceVim#default#SetMappings() abort
inoremap <expr> <PageUp> pumvisible() ? "\<PageUp>\<C-p>\<C-n>" : "\<PageUp>"
imap <expr><S-TAB> pumvisible() ? "\<C-p>" : ""
smap <expr><S-TAB> pumvisible() ? "\<C-p>" : ""
"Super paste it does not work
"ino <C-v> <esc>:set paste<cr>mui<C-R>+<esc>mv'uV'v=:set nopaste<cr>
"对于没有权限的文件使用 :w!!来保存
cnoremap w!! %!sudo tee > /dev/null %
" cmap W!! w !sudo tee % >/dev/null " I can not understand
" Save a file with sudo
" http://forrst.com/posts/Use_w_to_sudo_write_a_file_with_Vim-uAN
cnoremap w!! %!sudo tee > /dev/null %
" 映射Ctrl+上下左右来切换窗口
" Use Ctrl+* to jump between windows
nnoremap <silent><C-Right> :<C-u>wincmd l<CR>
nnoremap <silent><C-Left> :<C-u>wincmd h<CR>
nnoremap <silent><C-Up> :<C-u>wincmd k<CR>
@ -207,12 +205,11 @@ function! SpaceVim#default#SetMappings() abort
vnoremap <silent>]<Home> dggP``
"Ctrl+Shift+上下移动当前行
"Ctrl+Shift+Up/Down to move up and down
nnoremap <silent><C-S-Down> :m .+1<CR>==
nnoremap <silent><C-S-Up> :m .-2<CR>==
inoremap <silent><C-S-Down> <Esc>:m .+1<CR>==gi
inoremap <silent><C-S-Up> <Esc>:m .-2<CR>==gi
"上下移动选中的行
vnoremap <silent><C-S-Down> :m '>+1<CR>gv=gv
vnoremap <silent><C-S-Up> :m '<-2<CR>gv=gv
" download gvimfullscreen.dll from github, copy gvimfullscreen.dll to

View File

@ -63,10 +63,15 @@ function! SpaceVim#logger#viewLog(...) abort
let l = a:0 > 0 ? a:1 : 1
if filereadable(s:logger_file)
let logs = readfile(s:logger_file, '')
let info .= join(filter(logs, "v:val =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \[" . s:levels[l] . "\]'"), "\n")
let info .= join(filter(logs,
\ "v:val =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \["
\ . s:levels[l] . "\]'"), "\n")
else
let info .= '[ SpaceVim ] : logger file ' . s:logger_file . ' does not exists, only log for current process will be shown!'
let info .= join(filter(s:log_temp, "v:val =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \[" . s:levels[l] . "\]'"), "\n")
let info .= '[ SpaceVim ] : logger file ' . s:logger_file
\ . ' does not exists, only log for current process will be shown!'
let info .= join(filter(s:log_temp,
\ "v:val =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \["
\ . s:levels[l] . "\]'"), "\n")
endif
let info .= "\n```\n"
return info
@ -91,4 +96,4 @@ function! SpaceVim#logger#echoWarn(msg) abort
echohl None
endfunction
" vim:set et sw=2:
" vim:set et sw=2 cc=80:

View File

@ -12,4 +12,4 @@ function! SpaceVim#util#echoWarn(msg) abort
echohl None
endfunction
" vim:set et sw=2:
" vim:set et sw=2 cc=80:

View File

@ -10,6 +10,8 @@ permalink: "/conventions"
## Viml coding style guide
### Portability
Vim is highly configurable. Users can change many of the default settings, including the case sensitivity, the regular expression rules, the substitution rules, and more. In order for your vimscript to work for all users, follow these guidelines:
#### Strings
**Prefer single quoted strings**
@ -23,9 +25,9 @@ Use double quoted strings when you need an escape sequence (such as "\n") or if
The matching behavior depends upon the user's ignorecase and smartcase settings and on whether you compare them with the =~, =~#, or =~? family of operators. Use the =~# and =~? operator families explicitly when comparing strings unless you explicitly need to honor the user's case sensitivity settings.
#### Regular Expressions
**Prefix all regexes with \m\C.**
**Prefix all regexes with one of \m, \v, \M, or \V.**
In addition to the case sensitivity settings, regex behavior depends upon the user's nomagic setting. To make regexes act like nomagic and noignorecase are set, prepend all regexes with \m\C.
In addition to the case sensitivity settings, regex behavior depends upon the user's nomagic setting. To make regexes act like nomagic and noignorecase are set, prepend all regexes with one of \m, \v, \M, or \V.
You are welcome to use other magic levels (\v) and case sensitivities (\c) so long as they are intentional and explicit.
@ -34,6 +36,8 @@ You are welcome to use other magic levels (\v) and case sensitivities (\c) so lo
Avoid using :s[ubstitute] as it moves the cursor and prints error messages. Prefer functions (such as search()) better suited to scripts.
The meaning of the g flag depends upon the gdefault setting. If you do use :substitute you must save gdefault, set it to 0 or 1, perform the substitution, and then restore it.
For many vim commands, functions exist that do the same thing with fewer side effects. See :help functions() for a list of built-in functions.
#### Fragile commands
@ -121,6 +125,14 @@ All key mappings should be defined in plugin/mappings.vim.
Partial mappings (see :help using-<Plug>.) should be defined in plugin/plugs.vim.
**Always use the noremap family of commands.**
Your plugins generally shouldn't introduce mappings, but if they do, the map command respects the users existing mappings and could do anything.
#### Errors
When using catch, match the error code rather than the error text.
#### Settings
**Change settings locally**
@ -150,14 +162,38 @@ Trailing whitespace is allowed in mappings which prep commands for user input, s
- Indent continued lines by four spaces
- Do not align arguments of commands
```viml
command -bang MyCommand call myplugin#foo()
command MyCommand2 call myplugin#bar()
command -bang MyCommand call myplugin#foo()
command MyCommand2 call myplugin#bar()
```diff
+command -bang MyCommand call myplugin#foo()
+command MyCommand2 call myplugin#bar()
-command -bang MyCommand call myplugin#foo()
-command MyCommand2 call myplugin#bar()
```
#### Line Continuations
- Prefer line continuations on semantic boundaries.
```diff
+command SomeLongCommand
+ \ call some#function()
-command SomeLongCommand call
- \ some#function()
```
- Place one space after the backslash denoting a line continuation.
When continuing a multi-line command a pipe can be substituted for this space as necessary, as follows:
```viml
autocommand BufEnter <buffer>
\ if !empty(s:var)
\| call some#function()
\|else
\| call some#function(s:var)
\|endif
```
- Do not continue multi-line commands when you can avoid it. Prefer function calls.
#### Naming
In general, use plugin-names-like-this, FunctionNamesLikeThis, CommandNamesLikeThis, augroup_names_like_this, variable_names_like_this.
@ -185,8 +221,7 @@ Always prefix variables with their scope.
- l: and v: should be used for consistency, future proofing, and to avoid subtle bugs. They are not strictly required. Add them in new code but dont go out of your way to add them elsewhere.
author : google
link : https://google.github.io/styleguide/vimscriptguide.xml
## Thanks:
- link : https://google.github.io/styleguide/vimscriptguide.xml
- link : https://google.github.io/styleguide/vimscriptfull.xml
- link : https://github.com/noahfrederick/vim-scripting-style-guide/blob/master/doc/scripting-style.txt