This commit is contained in:
Nachuan Tang
2023-01-24 15:36:00 -05:00
5 changed files with 116 additions and 31 deletions
+1
View File
@@ -4,3 +4,4 @@
.vim/
autoload/
node_modules/
tags
+13 -14
View File
@@ -12,6 +12,9 @@
let g:vim_version = str2float(g:vim_version)
let g:dotfile_path = '~/.dotfiles/'
set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath=&runtimepath
" The default leader is '\', but many people prefer ',' as it's in a standard
let mapleader = ','
let maplocalleader = '_'
@@ -35,7 +38,7 @@
" Always switch to the current file directory
set shortmess+=filmnrxoOtT " Abbrev. of messages (avoids 'hit enter')
set viewoptions=folds,options,cursor,unix,slash " Better Unix / Windows compatibility
" set viewoptions=folds,options,cursor,unix,slash " Better Unix / Windows compatibility
set virtualedit=onemore " Allow for cursor beyond last character
set history=1000 " Store a ton of history (default is 20)
set hidden " Allow buffer switching without saving
@@ -165,20 +168,16 @@
" Yank from the cursor to the end of the line, to be consistent with C and D.
nnoremap Y y$
set foldmethod=syntax
autocmd FileType python set foldmethod=indent
if has('nvim')
set foldmethod=expr
set foldexpr=nvim_treesitter#foldexpr()
else
set foldmethod=syntax
autocmd FileType python set foldmethod=indent
endif
" so when a buffer open it wouldn't be fold by default
set nofoldenable
" Code folding options
nmap <leader>f0 :set foldlevel=0<CR>
nmap <leader>f1 :set foldlevel=1<CR>
nmap <leader>f2 :set foldlevel=2<CR>
nmap <leader>f3 :set foldlevel=3<CR>
nmap <leader>f4 :set foldlevel=4<CR>
nmap <leader>f5 :set foldlevel=5<CR>
nmap <leader>f6 :set foldlevel=6<CR>
nmap <leader>f7 :set foldlevel=7<CR>
nmap <leader>f8 :set foldlevel=8<CR>
nmap <leader>f9 :set foldlevel=9<CR>
" Find merge conflict markers
map <leader>fc /\v^[<\|=>]{7}( .*\|$)<CR>
+11 -17
View File
@@ -38,7 +38,6 @@
Plug 'scrooloose/nerdtree'
Plug 'godlygeek/tabular'
" for markdown{
Plug 'preservim/vim-markdown'
"}
@@ -79,6 +78,9 @@
" put text in neibouring tmux pane into auto complete
Plug 'wellle/tmux-complete.vim'
Plug 'ludovicchabant/vim-gutentags'
Plug 'lambdalisue/readablefold.vim'
" only work with nvim > 0.5
" For other versions, just loading the plugin may
" cause error
@@ -132,6 +134,11 @@ if g:vim_type == 'nvim'
endif
" }
" ludovicchabant/vim-gutentags {
set statusline+=%{gutentags#statusline()}
let g:gutentags_cache_dir=g:vim_dir . '/.vimtags/'
"}
" easymotion/vim-easymotion {
" <Leader>f{char} to move to {char}
@@ -179,23 +186,10 @@ endif
if isdirectory(expand(plugin_dir . "/vim-rooter"))
let g:rooter_patterns = ['.vscode', '.git', '*.sln', 'src']
let g:rooter_change_directory_for_non_project_files = 'current'
let g:rooter_silent_chdir = 1
endif
" }
" godlygeek/tabular {
if isdirectory(expand(plugin_dir . "/tabular"))
nmap <leader>t= :Tabularize /=<CR>
vmap <leader>t= :Tabularize /=<CR>
nmap <leader>t\| :Tab /\|<CR>
vmap <leader>t\| :Tab /\|<CR>
nmap <leader>t: :Tab /:\zs<CR>
vmap <leader>t: :Tab /:\zs<CR>
endif
" }
" NerdTree {
if isdirectory(expand(plugin_dir . "/nerdtree"))
let g:NERDShutUp=1
@@ -381,7 +375,7 @@ endif
"if !has('nvim') || g:vim_version < 0.5
if v:true
highlight SignColumn ctermbg=none
highlight CursorLineNr ctermbg=none
"highlight CursorLineNr ctermbg=none
highlight CocWarningHighlight ctermbg=none
highlight CocErrorSign ctermbg=none ctermfg=9 cterm=bold
highlight CocErrorHighlight ctermbg=none ctermfg=9 cterm=underline,bold
@@ -391,7 +385,7 @@ endif
highlight CocInfoSign ctermbg=none
highlight CocHintSign ctermbg=none
if g:theme_color == 'dark'
highlight! link TempColor Pmenu
highlight! link TempColor Visual
highlight! link CocFloating TempColor
highlight! link CocErrorFloat TempColor
highlight! link CocWarningFloat TempColor
+87
View File
@@ -0,0 +1,87 @@
""" cross platform installation script
"""
import subprocess
import os
import urllib.request
from os.path import expanduser, join
from shutil import which
home = expanduser("~")
app_name = 'dotfiles'
APP_PATH = join(home, '.' + app_name)
REPO_URL = 'https://github.com/Donaldttt/' + app_name
REPO_BRANCH = 'dev'
VIM_RTPATH = join(home, '.vim')
def exist(app):
return which(app) is not None
def program_must_exist(app):
if not exist(app):
fatal_error(app, "must be installed to continue")
def fatal_error(msg):
print('Error:', msg)
exit()
def msg(msg):
print(msg)
def execute(cmd, cwd=None):
out = subprocess.check_output(
cmd,
stderr=subprocess.STDOUT,
shell=True,
cwd=None
)
print(out)
def sync_repo(repo_path, repo_url, repo_branch, repo_name):
if not os.path.exists(repo_path):
msg('Trying to clone ' + repo_name)
cmd = "git clone -b {} {} {}".format(repo_branch, repo_url, repo_path)
execute(cmd)
else:
msg('Trying to update ' + repo_name)
cmd = "git pull origin {}".format(repo_branch)
execute(cmd, cwd=APP_PATH)
def setup_vimplug():
vimplug_path = VIM_RTPATH + "\\autoload\\plug.vim"
if not os.path.isdir(os.path.dirname(vimplug_path)):
os.makedirs(os.path.dirname(vimplug_path))
urllib.request.urlretrieve("https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim", vimplug_path)
print("Please execute :PlugInstall in vim")
def setup_nvim():
if exist('nvim'):
nvim_dir = home + '\\AppData\\Local\\nvim\\'
nvim_config = nvim_dir + 'init.vim'
if not os.path.isdir(nvim_dir):
os.mkdir(nvim_dir)
msg('Setting up neovim config')
with open(nvim_config, 'w') as f:
f.write('''set runtimepath^=~/.vim runtimepath+=~/.vim/after
let &packpath=&runtimepath
source ~/.vimrc''')
def setup_vim():
if not exist('vim') and not exist('nvim'):
fatal_error('Error: vim or nvim has to be installed.')
program_must_exist('git')
sync_repo(APP_PATH, REPO_URL, REPO_BRANCH, app_name)
path = join(home, '.vimrc')
if os.path.exists(path):
os.remove(path)
os.symlink(join(APP_PATH, '.vimrc'), join(home, '.vimrc'))
path = join(home, '.vimrc.bundles')
if os.path.exists(path):
os.remove(path)
os.symlink(join(APP_PATH, '.vimrc.bundles'), join(home, '.vimrc.bundles'))
setup_nvim()
setup_vimplug()
msg("Done!")
setup_vim()
+4
View File
@@ -1,6 +1,10 @@
# Windows Tips
## Install vim
Probably need to install bulid tool through scoop(like gcc)
Config powershell as emac style
put this line into powershell's config file(which is in $profile)