소스 검색

added new features goyo, sneak

Christian Chiarulli 6 년 전
부모
커밋
fa1be111d1
12개의 변경된 파일198개의 추가작업 그리고 31개의 파일을 삭제
  1. 6 3
      init.vim
  2. 59 0
      install/install.sh
  3. 0 0
      install/utils/installer.sh
  4. 1 1
      modules/ale.vim
  5. 5 1
      modules/deoplete.vim
  6. 23 11
      modules/general.vim
  7. 39 0
      modules/goyo-limelight.vim
  8. 8 3
      modules/language_server.vim
  9. 25 1
      modules/nerdtree.vim
  10. 20 10
      modules/plugins.vim
  11. 1 1
      modules/pythonpath.vim
  12. 11 0
      modules/relativenums.vim

+ 6 - 3
init.vim

@@ -11,8 +11,11 @@ source $HOME/.config/nvim/modules/gutentags_plus.vim
 source $HOME/.config/nvim/modules/markdown-preview.vim
 source $HOME/.config/nvim/modules/language_server.vim
 source $HOME/.config/nvim/modules/ale.vim
-"install ripgrep"
+source $HOME/.config/nvim/modules/goyo-limelight.vim
+source $HOME/.config/nvim/modules/relativenums.vim
+
+
+"npm i -g bash-language-server
+"install ripgrep" for gutentags to ignore .gitignore
 "install universal ctags"
-"pip install 'python-language-server[all]'
-" pip install vim-vint
 " TODO add this to script npm i -g bash-language-server

+ 59 - 0
install/install.sh

@@ -0,0 +1,59 @@
+#!/bin/sh
+
+if [ "$(uname)" == "Darwin" ]; then
+    echo 'MacOS Detected'
+    echo "installing miniconda"
+	wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -O ~/.config/nvim/install/miniconda.sh
+    echo " Grabbing a font to use foe devicons "
+    brew tap caskroom/fonts
+    brew cask install font-hack-nerd-font
+elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
+    echo 'Linux Detected'
+	wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/.config/nvim/install/miniconda.sh
+    mkdir -p ~/.local/share/fonts
+    cd ~/.local/share/fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf
+fi
+
+#chmod +x ~/.config/nvim/install/miniconda.sh
+
+sh ~/.config/nvim/install/miniconda.sh -b -f -p  $HOME/.miniconda
+
+echo 'export PATH="$HOME/.miniconda/bin:$PATH"' >> ~/.bash_profile
+
+. ~/.bash_profile
+
+conda create --name neovim python=3.7 --yes
+
+. activate neovim 
+
+pip install neovim
+
+. deactivate
+
+conda create --name pyls python=3.7 --yes
+
+. activate pyls
+
+pip install 'python-language-server[all]'
+pip install vim-vint
+
+. deactivate
+
+pip install 'python-language-server[all]'
+
+if [ ! -f ~/.bash_aliases ]; then
+    echo ".bash_aliases not found!"
+    touch ~/.bash_aliases
+    echo 'source ~/.bash_aliases' >> ~/.bashrc
+fi
+
+echo 'alias mkenv="conda create --clone pyls --name"' >> ~/.bash_aliases
+
+echo 'let g:python3_host_prog = expand("~/.miniconda/envs/neovim/bin/python3.7")' > ~/.config/nvim/modules/pythonpath.vim     
+
+if [ ! -d ~/.config/nvim/dein ]; then
+    echo "dein  package manager not found"
+    sh ~/.config/nvim/install/utils/installer.sh ~/.config/nvim/dein
+fi
+
+rm ~/.config/nvim/install/miniconda.sh

+ 0 - 0
utils/installer.sh → install/utils/installer.sh


+ 1 - 1
modules/ale.vim

@@ -3,7 +3,7 @@ let g:ale_linters = {
     \ 'cpp' : ['gcc'],
     \ 'c' : ['gcc'],
     \ 'vim' : ['vint'],
-    \ 'python': ['pyls', 'pydocstyle', 'pycodestyle', 'vulture'],
+    \ 'python': ['pydocstyle', 'pycodestyle', 'vulture'],
     \ 'javascript': ['eslint']
     \}
 

+ 5 - 1
modules/deoplete.vim

@@ -4,7 +4,11 @@ let g:deoplete#complete_method = "omnifunc"
 let g:deoplete#auto_complete_delay = 0
 " let g:deoplete#ignore_sources = ['buffer']
 
-" <TAB>: completion.
+"better nav for omnicomplete
+inoremap <expr> <c-j> ("\<C-n>")
+inoremap <expr> <c-k> ("\<C-p>")
+
+"<TAB>: completion.
 ""inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
 "use TAB as the mapping
 inoremap <silent><expr> <TAB>

+ 23 - 11
modules/general.vim

@@ -10,6 +10,7 @@ nmap <space> \
 xmap <space> \
 
 syntax enable                           " Enables syntax highlighing
+set hidden                              " Required for specific actions that require multiple buffers
 set nowrap                              " display long lines as just one line
 set encoding=utf-8                      " The encoding displayed 
 set fileencoding=utf-8                  " The encoding written to file
@@ -58,25 +59,25 @@ nnoremap <silent> <F1> :10split term://bash<CR>
 autocmd BufWinEnter,WinEnter term://* startinsert
 autocmd BufLeave term://* stopinsert
 " Toggle tagbar
-nnoremap <silent> <F2> :TagbarToggle<CR>
+"nnoremap <silent> <F2> :TagbarToggle<CR>
 " Toggle Line numbers
-nnoremap <silent> <F4> :set nonumber!<CR>
+"nnoremap <silent> <F4> :set nonumber!<CR>
 " Toggle NERDTree
-nnoremap <silent> <F5> :NERDTreeToggle<CR>
+"nnoremap <silent> <F5> :NERDTreeToggle<CR>
 " Startify
-nnoremap <silent> <F6> :Startify<CR>
+"nnoremap <silent> <F6> :Startify<CR>
 " Get rid of highlights after search
-nnoremap <silent> <F7> :nohlsearch<CR><F7>
+"nnoremap <silent> <F7> :nohlsearch<CR><F7>
 " Toggle open buffers
-nnoremap <silent> <F8> :BuffergatorToggle<CR>
+" nnoremap <silent> <F8> :BuffergatorToggle<CR>
 " For fuzzy finder
 ""nnoremap <silent> <F9> :Files<CR>
 " F10 split vertical
-nnoremap <silent> <F9> :vsplit<CR>
+"nnoremap <silent> <F9> :vsplit<CR>
 " F11 split horizontal
-nnoremap <silent> <F10> :split<CR>
+"nnoremap <silent> <F10> :split<CR>
 " Make current buffer only buffer
-nnoremap <silent> <F12> :only<CR>
+"nnoremap <silent> <F12> :only<CR>
 " Remap window switch
 " Switch to rename for LSP to do add leader
 ""nnoremap <F4> :SearchTasks *<CR>
@@ -84,12 +85,22 @@ nnoremap <silent> <F12> :only<CR>
 nnoremap <silent> <leader>n :NERDTreeToggle<return>
 nnoremap <silent> <leader>m :TagbarToggle<return>
 nnoremap <silent> <leader>l :set nonumber!<return>
+nnoremap <silent> <leader>o :only<return>
 nnoremap <silent> <leader>s :Startify<return>
 nnoremap <silent> <leader>w :w<return>
-nnoremap <silent> <leader>b :<return>
 nnoremap <silent> <leader>p :pclose<return>
+nnoremap <silent> <leader>bu :BuffergatorToggle<return>
+nnoremap <silent> <leader>gy :Goyo<return>
+nnoremap <silent> <leader>hi :nohlsearch<return>
+nnoremap <silent> <leader>hs :split<return>
+nnoremap <silent> <leader>vs :vsplit<return>
+nnoremap <silent> <leader>gh :call LanguageClient_textDocument_hover()<CR>
+nnoremap <silent> <leader>gd :call LanguageClient_textDocument_definition()<CR>
+nnoremap <silent> <leader>gr :call LanguageClient_textDocument_rename()<CR>
+nnoremap <silent> <leader>gc :call LanguageClient_contextMenu()<CR>
+nnoremap <silent> <leader>fr :call LanguageClient_textDocument_references()<CR>
 
-" Split edit your vimrc. Type space, v, r in sequence to trigger
+" This is a funtion to open any file with <leader>(key sequence)
     fun! OpenConfigFile(file)
       if (&filetype ==? 'startify')
         execute 'e ' . a:file
@@ -98,6 +109,7 @@ nnoremap <silent> <leader>p :pclose<return>
       endif
     endfun
 nnoremap <silent> <leader>in :call OpenConfigFile('~/.config/nvim/init.vim')<cr>
+nnoremap <silent> <leader>bashrc :call OpenConfigFile('~/.bashrc')<cr>
 
 nnoremap <C-h> <C-w>h
 nnoremap <C-j> <C-w>j

+ 39 - 0
modules/goyo-limelight.vim

@@ -0,0 +1,39 @@
+
+"Make window a little bigger"
+"
+let g:goyo_width=100
+let g:goy_height=95
+"
+"
+" Disable Deoplete "
+
+function! s:goyo_enter()
+  
+  call deoplete#custom#option('auto_complete', v:false)
+  set spell spelllang=en_us
+  set wrap
+  set tw=100
+  set noshowcmd
+  set scrolloff=999
+""  set background=light
+""  colorscheme flattened_light
+  Limelight
+  " ...
+endfunction
+
+function! s:goyo_leave()
+
+  call deoplete#custom#option('auto_complete', v:true)
+  set nospell
+  set wrap!
+  set showcmd
+  set scrolloff=5
+""  set background=dark
+""  colorscheme Tender
+  Limelight!
+  " ...
+endfunction
+
+autocmd! User GoyoEnter nested call <SID>goyo_enter()
+autocmd! User GoyoLeave nested call <SID>goyo_leave()
+

+ 8 - 3
modules/language_server.vim

@@ -9,8 +9,13 @@ let g:LanguageClient_serverCommands = {
     \ 'javascript.jsx': ['tcp://127.0.0.1:2089'],
     \ 'python': ['pyls'], 
     \ 'sh': ['bash-language-server', 'start'],
+    \ 'c' : ['cquery'],
+    \ 'cpp' : ['cquery'],
     \ }
 
-nnoremap <silent> K :call LanguageClient#textDocument_hover()<CR>
-nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
-nnoremap <silent> <F3> :call LanguageClient#textDocument_rename()<CR>
+nnoremap <silent> <leader>gh :call LanguageClient_textDocument_hover()<CR>
+nnoremap <silent> <leader>gd :call LanguageClient_textDocument_definition()<CR>
+nnoremap <silent> <leader>gr :call LanguageClient_textDocument_rename()<CR>
+nnoremap <silent> <leader>gc :call LanguageClient_contextMenu()<CR>
+nnoremap <silent> <leader>fr :call LanguageClient_textDocument_references()<CR>
+

+ 25 - 1
modules/nerdtree.vim

@@ -1 +1,25 @@
-let NERDTreeShowHidden = 1
+let NERDTreeShowHidden = 1              " show hidden files
+
+" automatically close when you open a file"
+"let NERDTreeQuitOnOpen = 1
+
+" let nvim close when nerdtree is last thing"
+autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
+
+
+" nerdtree will delete buffer of file "
+
+ let NERDTreeAutoDeleteBuffer = 1
+
+" if you need help press ? while in nerdtree "
+""let NERDTreeMinimalUI = 1
+let NERDTreeDirArrows = 1
+
+
+"This depends on vim-nerdtree-syntax-highlight"
+let g:NERDTreeFileExtensionHighlightFullName = 1
+let g:NERDTreeExactMatchHighlightFullName = 1
+let g:NERDTreePatternMatchHighlightFullName = 1
+
+let g:NERDTreeHighlightFolders = 1 " enables folder icon highlighting using exact match
+let g:NERDTreeHighlightFoldersFullName = 1 " highlights the folder name

+ 20 - 10
modules/plugins.vim

@@ -9,10 +9,13 @@ if dein#load_state('~/.config/nvim/dein')
   call dein#begin('~/.config/nvim/dein')
 
   
-  " Themes
-  call dein#add('liuchengxu/space-vim-dark')
-  call dein#add('joshdick/onedark.vim')
-  call dein#add('morhetz/gruvbox')
+  " All the Themes
+  call dein#add('flazz/vim-colorschemes')
+  "  call dein#add('liuchengxu/space-vim-dark')
+  "  call dein#add('joshdick/onedark.vim')
+  "  call dein#add('morhetz/gruvbox')
+  "  Neoterm
+  call dein#add('kassio/neoterm')
   call dein#add('jacoborus/tender.vim')
   " Better Syntax Support
   call dein#add('sheerun/vim-polyglot')
@@ -21,6 +24,9 @@ if dein#load_state('~/.config/nvim/dein')
   call dein#add('vim-airline/vim-airline-themes')
   " File manager
   call dein#add('scrooloose/NERDTree')
+  " Icons
+  call dein#add('ryanoasis/vim-devicons')
+  call dein#add('tiagofumo/vim-nerdtree-syntax-highlight')
   " Start Screen
   call dein#add('mhinz/vim-startify')
   " For ctags
@@ -43,16 +49,20 @@ if dein#load_state('~/.config/nvim/dein')
   " Fuzzy finder
   call dein#add('junegunn/fzf.vim',  { 'dir': '~/.fzf', 'do': './install --all' })
   call dein#add('junegunn/fzf')
-
-
-  "Git
+  " Sneak mode "
+  call dein#add('justinmk/vim-sneak')
+  ""Git
   call dein#add('airblade/vim-gitgutter')
   call dein#add('tpope/vim-fugitive')
   " BufOnly use :BufOnly to unload all or pass it a single buffer
   call dein#add('vim-scripts/BufOnly.vim')
-  " Markdown viewer TODO Fix this stupid thing
-  "call dein#add('iamcco/markdown-preview.nvim', { 'do': 'cd app & yarn install'  })
-
+  " Distraction free writing "
+  call dein#add('junegunn/goyo.vim')
+  call dein#add('junegunn/limelight.vim')
+  "Markdown viewer TODO Fix this stupid thing
+  call dein#add('iamcco/markdown-preview.nvim', { 'do': 'cd app & yarn install'  })
+""  call dein#add('iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }})
+""  call dein#add('euclio/vim-markdown-composer')
   call dein#add('~/.config/nvim/dein/repos/github.com/Shougo/dein.vim')
   call dein#add('Shougo/deoplete.nvim', {'do': 'UpdateRemotePlugins'})
   call dein#add('Shougo/neoinclude.vim')

+ 1 - 1
modules/pythonpath.vim

@@ -1 +1 @@
-let g:python3_host_prog = expand('~/Miniconda/envs/neovim/bin/python3.7')
+let g:python3_host_prog = expand("~/.miniconda/envs/neovim/bin/python3.7")

+ 11 - 0
modules/relativenums.vim

@@ -0,0 +1,11 @@
+function! NumberToggle()
+  if(&relativenumber == 1)
+    set number
+    set norelativenumber
+  else
+    set number
+    set relativenumber
+  endif
+endfunc
+
+nnoremap <leader>rn :call NumberToggle()<cr>