나는 결코 vim 고급 사용자가 아니며 vim의 고급 동작과 명령을 이제 막 익히기 시작했습니다. 하지만 극복하기 힘든 단점이 하나 있습니다.
저는 코드 작성을 위해 그래픽 프로그램을 사용하면서 자랐지만 최근에야 ssh와 screen을 통해 vim을 사용하여 많은 폴더가 있는 상당히 큰 프로젝트 작업을 시작했습니다.
vim master가 어떻게 여러 파일을 빠르고 쉽게 처리할 수 있는지 궁금합니다. Rails 애플리케이션을 예로 들어보겠습니다. 실행할 컨트롤러를 편집한다고 가정해 보겠습니다.
vim app/controllers/controller.rb
하지만 신속하게 뷰 편집이나 데이터베이스 마이그레이션으로 변경하고 싶을 때, 제가 가장 먼저 반응하는 것은 :wq
bash로 돌아가서 해당 디렉토리로 이동하고 새로운 버퍼에서 vim을 다시 시작하는 것입니다.
이것은 분명히 완전히 잘못된 것입니다.
나는 다음과 같은 것들을 배웠습니다:
- 클라이언트 서버(그러나 SSH를 통해 X를 사용하고 싶지 않습니다. 이것이 유일한 방법인 것 같습니다)
:e
탐색을 통해 다른 파일을 열 수 있지만 빨리 열 수 없는 것 같습니다. Tab Complete는 정말 혼란 스럽습니다.- 전체 디렉터리를 열고 버퍼를 검색합니다.
- NERDTree는 유망하지만 그래픽 표현을 멀리하여 지속적으로 명령줄 탐색을 마스터하도록 하고 싶습니다.
순진해서 죄송합니다만, 매우 주관적이라 하더라도 올바른 방법을 꼭 배우고 싶습니다.
당신의 접근 방식은 무엇입니까? 무엇을 추천하나요?
답변1
Vim은 종료하지 않고도 여러 파일을 편집하도록 설정할 수 있습니다. 여러 버퍼를 사용하고 버퍼 간에 전환합니다. 화면 내에서 vim을 사용하고 있으므로 ~/.vimrc에 다음을 입력하여 활성화할 수 있습니다.
set hidden
syntax enable
source $VIMRUNTIME/menu.vim
set wildmenu
set cpo-=<
set wcm=<C-Z>
map <F4> :emenu <C-Z>
nmap <Esc>[5D :bp<CR>
nmap <Esc>Od :bp<CR>
nmap <Esc>OD :bp<CR>
nmap <Esc>[5C :bn<CR>
nmap <Esc>Oc :bn<CR>
nmap <Esc>OC :bn<CR>
nmap <Esc>[3~ :bd<CR>
nmap ZZ :bd<CR>
이러한 키맵은 Ctrl-왼쪽 화살표 및 오른쪽 화살표에 매핑되어 버퍼 간을 전환합니다. F4 키는 GUI에 표시되는 것과 동일한 메뉴를 호출합니다. 이제 Tab 키를 누르면 Tab 키를 누를 때 완료를 선택할 수 있는 작은 메뉴도 표시됩니다.
답변2
하아! 나도 한때는 너와 똑같았으니 나도 알아정확히어디서 오셨나요. 지금도 내가 무엇을 하고 있는지 어느 정도 알고 있지만(나는 vim 전문가는 아니지만 이 일을 할 수 있기를 원합니다) 여전히 가끔 :wq를 수행하고 쉘로 돌아갑니다.
이것 좀 봐- 이게 도움이 될 것 같아요. (저는 이것을 전혀 몰랐기 때문에 저에게도 도움이 될 것입니다. 이것이 Stackexchange 사이트의 가장 큰 장점입니다. 다른 사람들의 학습을 도와줌으로써 배울 수 있습니다!)
제가 하는 일은 다음과 같습니다.
주문하다
:e
. vim 내에서 파일을 편집할 때 다음과 같은 작업을 수행할 수:e dir/subdir/otherfile
있으며 새 버퍼에서 해당 파일이 열립니다. 즉, 동시에 두 개의 파일이 열리게 됩니다.Ctrl-Shift-6
(실제 ASCII 값을 모릅니다). 두 개의 버퍼가 켜져 있는 경우 이 스위치를 사용하여 버퍼 사이를 빠르게 전환할 수 있습니다.bd
- 버퍼 삭제. 버퍼를 지울 수 있습니다.이것은 매우 매우 편리한 도구입니다
:sh
. 어떤 이유로든(예: 디렉터리를 보고 파일을 chmod하기 위해) 셸로 돌아가야 하는 경우 vim의 셸 명령 do를 호출하여 그렇게 할 수 있습니다. 셸을 종료하면 즉시 vim의 현재 위치로 돌아갑니다.위와 동일한 범주에서 입력하면
:!
후속 Unix 명령이 명령을 실행합니다. .(쉘 내장 기능에서도 작동하는 것ls
같지만 확실하지 않습니다.)
이것들은 제가 항상 사용하는 것들입니다. vim에서 동시에 두 개 이상의 버퍼를 열 수 있으므로 :n
다음 파일과 이전 파일 도 있습니다 (보통은 이렇게 하지 않습니다).:p
답변3
이곳은 당신이 사용하기 시작하는 곳입니다플러그인. 파일(또는 버퍼) 관리용괴상한 나무그리고미니 버퍼 브라우저일반적인 선택입니다. 당신의 경우에는 Google을 검색하겠습니다."vim 루비 IDE"그리고 제가 찾은 많은 튜토리얼 중 하나를 따랐습니다. 저는 Python과 3개의 명령을 사용했습니다.이 튜토리얼Vim 내에서 필요한 모든 것을 구성하세요.
답변4
vi :split 명령을 사용하여 두 번째 편집 창을 엽니다. 분할은 수평 및 수직 분할을 수행할 수 있으며 한 번에 두 개 이상의 분할을 수행할 수 있습니다. 동일한 vi 세션에 최대 10개의 파일이 열려 있습니다.