일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Sysinternals
- namespace
- deployment
- docker
- android studio
- Flutter
- ebpf
- RTMP
- Pod
- configmap
- Kubernetes
- Shell script
- 행정구역분류
- wireshark
- service
- Windows10
- VSCode
- aws cli
- kubectl
- HLS
- nginx-media-server
- golang
- spring cloud config
- aws
- Java
- Python
- dart
- ffmpeg
- macos
- Android
- Today
- Total
woonizzooni
Windows10 환경에서 vim 환경 설정 본문
** MacOS / Linux 환경에서 환경 구성하는 것이 더 수월하고 더 많은 기능활용에 유리함 **
bash, zsh 등 cli 쉘 사용이 빈번한 Mac / Linux등과 달리
Windows환경에서는 컴파일 환경, 빌드 환경 별 전용(?) GUI 빌드 툴 실행이 보편적이니
적당선(?)의 환경 구성만 해두자.
o Vim 다운로드 & 설치
[공식]
공식 download 페이지 : https://www.vim.org/download.php
- Windows 64bit용은 배포되지 않는다. (The 32-bit version of Vim runs fine on 64-bit windows. There was a 64-bit binary, but it wasn't used much and maintenance stopped.)
- executable파일과 Runtime files를 다운받아 동일 디렉토리에 위치 시키면 된다.
[Nightly]
Vim Installer and Archives (Win32 and Win64) : https://github.com/vim/vim-win32-installer
- 이 곳에 연동 가능한 인터프리터 목록이 작성되어 있는데(perl, python2, python3 등),
자신이 사용하는 vim의 arch와 인터프리터의 arch가 같아야 함을 알고 있어야 하겠다.
"Make sure that you install the same architecture (32bit/64bit) for those libraries that matches your Vim installation."
- 아래와 같은 'nightly' 버전을 설치해봐도 된다.
o 실행 환경 조성
본인이 사용하고자 하는 플러그인 사용에 인터프리터 사용이 요구될 수 있다.
python2, python3등은 설치해두자.
git client : git 실행파일이 PATH에 잡혀 있어야 함.
o vim colorscheme
"colorscheme torte
"colorscheme jellybeans
colorscheme gruvbox (https://github.com/morhetz/gruvbox)
"color solarized
o 플러그인 매니저
git client가 설치되어 있는 상태에서 진행.
Plug : https://github.com/junegunn/vim-plug
plug.vim파일을 (https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim) 아래 경로에 다운로드 함. %USERPROFILE%\vimfiles\autoload\plug.vim %USERPROFILE%\.vimrc 파일 생성 후 아래와 같이 설정 .. call plug#begin('~/.vim/plugged') "ex) 사용 희망 플러그인 구성 Plug 'junegunn/vim-easy-align' Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } call plug#end( .. vim실행 후 (or .vimrc reload후) 아래 명령 실행 :PlugInstall ===> %USERPROFILE%\.vim\plugged\ 폴더에 사용 설정한 플러그인들이 git clone진행됨. |
Vundle : https://github.com/VundleVim/Vundle.vim
Vundle.vim이 %USERPROFILE% 밑 다음과 같은 경로에 다운로드. git clone https://github.com/VundleVim/Vundle.vim.git \ %USERPROFILE%\.vim\bundle\Vundle.vim %USERPROFILE%\.vimrc 파일 생성 후 아래와 같이 설정 ... set nocompatible " be iMproved, required filetype off " required set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' "ex) 사용 희망 플러그인 구성 Plugin 'tpope/vim-fugitive' Plugin 'git://git.wincent.com/command-t.git' Plugin 'file:///home/gmarik/path/to/plugin' Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} call vundle#end() " required filetype plugin indent on " required ... vim실행 후 (or .vimrc reload후) 아래 명령 실행 :PluginInstall ===> %USERPROFILE%\.vim\bundle\ 폴더에 사용 설정한 플러그인들이 git clone됨 |
Dein : https://github.com/Shougo/dein.vim
minpac : https://github.com/k-takata/minpac/
Pathogen : https://github.com/tpope/vim-pathogen
NeoBundle : https://github.com/Shougo/neobundle.vim
VAM : https://github.com/MarcWeber/vim-addon-manager
o 플러그인 목록
call plug#begin('~/.vim/plugged') Plug 'junegunn/vim-easy-align' "Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } Plug 'junegunn/fzf.vim' Plug 'scrooloose/nerdtree' Plug 'scrooloose/nerdcommenter' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'terryma/vim-multiple-cursors' Plug 'tpope/vim-surround' call plug#end() |
vim-airline/vim-airline (https://github.com/vim-airline/vim-airline)
vim-airline/vim-airline-themes (https://github.com/vim-airline/vim-airline-themes)
--> 수려한 UI외에도, 버퍼 목록 탭 표시 편의로 선택.
let g:airline#extensions#tabline#enabled = 1 " 버퍼 목록 켜기 let g:airline#extensions#tabline#fnamemod = ':t' " 파일명만 출력 let g:airline_theme='hybrid |
scrooloose/nerdtree (https://github.com/scrooloose/nerdtree)
F2로 NERDTreeFind
리더키 + n으로 트리창 토글
let NERDTreeShowLineNumbers=1 autocmd StdinReadPre * let s:std_in=1 autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif nnoremap <F2> :NERDTreeFind <CR> nnoremap <Leader> n :NERDTreeToggle<CR> |
scrooloose/nerdcommenter (https://github.com/scrooloose/nerdcommenter)
영역선택 & 리더키 + cc
영역 선택 & 리더키 + c + space
let g:NERDSpaceDelims = 1 let g:NERDCompactSexyComs = 1 let g:NERDDefaultAlign = 'left' let g:NERDAltDelims_java = 1 "let g:NERDCustomDelimiters = { 'c': { 'left': '/**','right': '*/' } } let g:NERDCustomDelimiters = { 'c': { 'left': '//','right': '' } } let g:NERDCommentEmptyLines = 1 let g:NERDTrimTrailingWhitespace = 1 map <Leader>cc <plug>NERDComToggleComment map <Leader>c<space> <plug>NERDComCommen |
fzf-vim (https://github.com/junegunn/fzf.vim)
- fzf 설치(https://github.com/junegunn/fzf)
이 글을 참고해서 chocolatecy를 설치.
choco install fzf
where fzf
- ag 설치 (https://github.com/ggreer/the_silver_searcher)
choco install ag
where ag
- rg 설치 (https://github.com/BurntSushi/ripgrep)
choco install ripgrep
where rg
- find는 msys(이 글 참고)의 C:\msys64\usr\bin\find.exe를 사용 예정
where find
call plug#begin('~/.vim/plugged')
" Select buffer (단축키 leader키 + Enter키) - :bp, :bn등이 아닌 ,(본인리더키) + enter & ctrl + j or k로 지정 선택 편의 " Narrow ag results within vim (:Ag 검색어 입력 + enter & 결과에서 항목 선택 (방식 상동) |
vim-easy-align (https://github.com/junegunn/vim-easy-align)
nmap ga <Plug>(EasyAlign) xmap ga <Plug>(EasyAlign |
terryma/vim-multiple-cursors (https://github.com/terryma/vim-multiple-cursors)
영역선택 (ex. vip or ctrl+v) & ctrl + n : 선택 영역에 멀티커서 위치됨. 이후 동시편집
ctrl + v로 특정 캐릭터(ex. 쉼표) 선택 + 'ctrl + n'으로 추가 선택 (반복)
원하는 단어 앞 부분에 커서 위치 & g + ctrl + n 으로 단어 선택 후 ctrl + n으로 추가 & 편집
** 한번 ESC누르면 단어 > 커서로 변경됨 > 한번 더 눌러야 취소
p, x, esc등 아래 참고
let g:multi_cursor_use_default_mapping=0 let g:multi_cursor_start_word_key = '<C-n>' let g:multi_cursor_select_all_word_key = '<A-n>' let g:multi_cursor_start_key = 'g<C-n>' let g:multi_cursor_select_all_key = 'g<A-n>' let g:multi_cursor_next_key='<C-n>' let g:multi_cursor_prev_key='<C-p>' let g:multi_cursor_skip_key='<C-x>' let g:multi_cursor_quit_key='<ESC>' |
tpope/vim-surround (https://github.com/tpope/vim-surround)
이건 차차 필요하면 보기로... 나야 뭐 s + regexp가 워낙 익숙하니까...
terryma/vim-smooth-scroll (https://github.com/terryma/vim-smooth-scroll)
o 단축키 (일부)
Windows용 gvim의 경우 mswin.vim파일을 source로 사용시 ctrl + c/v/x/f 등의 키조합에서 어색한(?) 상황이 생겼다.
gui모드와 cli모드간의 충돌(?)로 인한 어색함일 듯 한데 나름 이것도 장점이 있어 보여서 일단 써보자.
(예: 영역 선택시 ctrl+c로 복사 ctrl+v로 붙여넣기,
i(nsert)모드 & ctrl+v로 붙여넣기 등, 마우스 우측 클릭 다이얼로그 창 등)
C-F, C-V, C-Y정도만 기존 vim 명령으로 해두자.
source $VIMRUNTIME/mswin.vim unmap <C-Y> unmap <C-F> cunmap <C-F> unmap <C-V> iunmap <C-V> vunmap <C-V> |
기타 : c(ommand-line)모드에서의 이력 확인 단축키.
q: == : + "ctrl + f" q/ == / + "ctrl + f" |
insert모드에서 ctrl + p 혹은 ctrl + n : 자동 완성 목록 선택 창 (vim기본 제공 기능)
visual모드에서 영역 선택 후 zf : fold만들기
zo : fold펼치기
zR : 전체 펼치기
zc : fold 접기
zM : 모든 fold 닫기
zE : 모든 fold 제거
:bn (다음 버퍼 열기 : 다음 파일 탭 이동으로 보임)
:bp (이전 버펴 열기 : 이전 파일 탭 이동으로 보임)
--> fzf-vim의 '리더키 + enter' 로 버퍼 선택 더 편하게.
:list : 버퍼 목록 확인
:b 버퍼번호
:bd! : 편집중 닫을 때
ctrl + w + v = :vs : 화면 세로로 나누기
:sp : 화면 가로로 나누기
ctrl + w + n = 화면 위쪽 split윈도우 빈 버퍼
leader 키를 ,로 설정해둔상태.
, + s + o : vimrc 리로드
, + n : nerdtree 토글
, +
split 윈도우간 이동 단축키, 그외 기타 등록
[참고]
Using command-line history : https://vim.fandom.com/wiki/Using_command-line_history
Mapping keys in Vim : https://vim.fandom.com/wiki/Mapping_keys_in_Vim_-_Tutorial_(Part_1)
VimAwesome : https://vimawesome.com/
fzf.vim examples : https://github.com/junegunn/fzf/wiki/Examples-(vim)
vimcolors : http://vimcolors.com/
'MISC' 카테고리의 다른 글
"VMware Workstation Pro은 Windows에서 실행할 수 없습니다" (0) | 2019.10.18 |
---|---|
MacOS 환경에서 vim 환경 설정 (0) | 2019.10.15 |
Windows 패키지 매니저 chocolatey 설치 (0) | 2019.09.16 |
[Eclipse] Java Decompiler 설치, Procyon 선택 (0) | 2019.08.25 |
대한민국 행정구역 데이터 (0) | 2019.08.23 |