내가 Vim을 좋아하는 이유 :이 기능이 그다지 놀랍도록 덜 알려진 기능입니다.

2016 년 Vim을 사용하기 시작한 이후 Vim에서 플러그인없이 바로 사용할 수있는 몇 가지 알려지지 않은 기능을 발견했습니다.

이 새로운 것들에 대해 짓밟 기 전에 몇 가지 기본 사항을 다룰 수 있습니까?

그렇지! 치트 시트에서 몇 가지 명령을 붙여 넣기 전에 대담한 가정을하겠습니다. 치트 시트를 원하고 이미 Vim 기본 사항을 알고 있다면이 내용을 읽지 않을 것입니다.

Linux 배포판에 Vim이라는 기본 명령 줄 텍스트 편집기가 제공된다고 들었을 수도 있습니다.

따라서이 전체 게임에 완전히 익숙하지 않다고 가정하고 (역사 / 지루한 이론없이) 기본으로 필요한 것부터 시작한다고 가정하겠습니다.

참고 : 기본 사항을 알고있는 경우 여기를 클릭하여 해당 내용을 스크롤하십시오.

Vim에 관한 다른 기사들과 비교하여 당신의 거래는 무엇입니까?

Vim에 대한 대부분의 소개 기사는 Vim 모드에서 시작하여 삽입, 저장 및 종료됩니다. 이론적 완전 학습 모드에있는 경우 위키 북에서 도움이되는 내용을 자유롭게 읽으십시오.

Vim이 작동하는 방식 뒤에 철학이 있고 VI / Vim의 명령이 결합되어야한다는 훌륭한 책과 기사도 있습니다. 절대적으로 사실이며 편집자에게 익숙해지면 제공하는 힘에 감사하게 생각합니다.

나는 Vim의 학습 곡선에 관한 재미있는 이야기를 듣고 재미있는 이미지를 보았습니다. 그게 사실입니까? 실제로 그렇게 나쁘습니까?

글쎄, 증오 혐오 그러나, 나에 따르면, Vim의 적절한 표현을주는 이미지는 다음과 같습니다.

예의 : https://pascalprecht.github.io/2014/03/18/why-i-use-vim/

Vim에 관한 기사의 대부분은 학습 * 곡선 *을 학습 * 벽 *이라고 언급하지만 긍정적 인면이 있습니다. 벽의 다른 쪽을보십시오!

초보자에게는 명령 행에서 편집기를 사용하기 전에 이와 같은 작업을 수행하지 않았기 때문에 문자 그대로 벽입니다. 초보자로 시작했을 때 가장 마음에 들었던 것은 Vim의 편재였습니다.

모든 터미널에서 (비 Windows) 시스템에 로그인하면 눈을 감고 * vi *를 입력하여 문자 그대로 편집기를 얻을 수 있습니다. 에디터가 당신 앞에 나타날 것입니다!

저에게 호소력을 발휘 한 또 다른 점은 마우스 없이도 터치 패드에서 생산적인 시간을 낭비하거나 랩탑 용 마우스를 사용하지 않고도 작업 할 수 있다는 것입니다.

나는 알고있다. 나는 당신 중 일부가“Emacs! 이맥스!”알았습니다. 그러나 일단 Vim에 매료되면 emacs에 관심이 없었습니다 (설치가 필요할 수 있음). 예, 이맥스도 훌륭하다고 생각합니다. VI (m)과 함께이 아름다운 여행을 떠나기 전에 배를 타십시오.

방금 터미널을 열고 vi를 입력하고 리턴 키를 쳤습니다. 내가 볼 수있는 것은 시작 화면입니다. 입력 할 수없고 어떻게 빠져 나올지 모르겠습니다. 기능이있는 강력한 편집기입니까?

100 % 확실합니다. 방금 목격 한 행동은 앞에서 본 * 벽 *입니다. VI (m)이 다른 많은 일을 할 수 있다고 믿어주세요. 자체 사용 방법이 있습니다. 파일을 편집하고, 탭을 열고, 화면을 가로 또는 세로로 분할하고, 파일 시스템을 탐색하고, 파일을 떠나지 않고 Linux 명령을 실행하고, 파일을 종료하지 않고 소스 코드에서 빌드를 트리거하고, 디렉토리를 즐겨 찾기하고, 파일의 책갈피 행, 물론 복사-붙여 넣기 등의 단어를 찾아서 바꾸십시오.

네! 편집자가이를 지원하는 데 큰 도움이됩니다. 메! 모두 그렇게합니다. 가장 중요한 것은 무엇입니까?

큰 문제는 없습니다. 키보드를 떠나지 않고 파일 / 코드에 집중할 수있는 기능 만 있습니다. 실제로 마우스를 사용하는 것이 마음에 들지 않으면 MS word / GUI 편집기를 열고 원하는 모든 편집을 수행하십시오.

충분합니다. 그러나 진지하게 왜 일부 작업을위한 IDE가 아닌가?

좋아, 그래서 당신은 개발자이며 IDE를 좋아하거나 좋아했습니다. 아닙니다. VI (m)은 반짝이는 IDE를 대체하지 않습니다. VI (m)에는 IDE의 뛰어난 기능이 없습니다. VI (m)은 부피가 큰 IDE에 비해 크기가 작고 (패키지 및 설치) 구성 및 설치없이 사용할 수 있습니다. VI (m)은 IDE가 제공하는 훌륭한 기능과 일치하지 않습니다.

이야기가 충분합니다. 기본 사항을 알려주세요.

물론, 시작하기 전에 Vim 사용자는 기본적으로 명령 모드와 삽입 모드를 처리해야합니다. Esc 키가 아닌 문자 그대로 이스케이프가 없습니다.

편집기를 사용하고 있고 C 언어에서 긴 기능을 삭제하려고한다고 가정 해 봅시다. 간단한 단계는 다음과 같습니다. 줄의 시작 부분에 커서를 놓은 다음 끝까지 Shift + 아래쪽 화살표를 누르거나 마우스를 사용하십시오. 이러한 행을 선택하기 위해 수행해야하는이 작업을 수행하려면 입력을 * 중지 *하고 키를 눌러야합니다. 그렇지 않습니까? 무언가를 타이핑하고 동시에 키를 눌러 기능의 바디를 마술처럼 선택했다고 말하지 마십시오.

합리적이어야합니다. 입력을 일시 중지하고 선택 작업을 수행하여 편집기에서이 텍스트 (복사 / 잘라 내기 / 굵은 체 / 이탈리아 / 모든 것)로 무언가를하고 싶다고 알려주었습니다.

이 일시 정지는 VI (m)에서 명령 모드에있는 것과 같습니다. 이것은 VI (m)에 어떤 행 / 단어 / 어떤 것에 든 어떤 행동을하고 싶다고 말하고 입력하지 않을 때입니다. 이제 VI (m)은 삽입 모드에서 빠져 나오고 파일에 텍스트를 입력 할 수 없게됩니다. 파일에 실제로 입력 할 수있는 다른 모드는 삽입 모드입니다.

BTW, 텍스트를 선택하지 않거나 마우스를 사용하지 않고 기능 본문을 어떻게 선택하는지 궁금하다면 커서를 여는 중괄호에 놓고 키 입력을 사용하여 달성합니다. d %

예, 함수 본문의 내용이 삭제됩니다. 아니요, 기억해야 할 키 조합이 소름 끼치 지 않습니다! d는 삭제하려는 것을 나타냅니다. %는 커서를 일치하는 괄호의 끝으로 옮길 것입니다.

이제 기본 모드를 설정 했으므로 기본 VI (m)를 살펴 보겠습니다.

작성중인 파일 이름을 알고있는 경우 :

$ vi myfile.c

파일 이름을 모르고 입력을 시작하려는 경우 :

$ vi

vi를 열면 명령 모드가됩니다. 삽입 모드로 들어가려면 i를 누릅니다. 원하는 것을 입력하십시오. Esc를 눌러 명령 모드로 돌아갑니다. 이제 vi를 연 방법에 따라 종료 할 몇 가지 옵션이 있습니다.

파일 이름을 지정한 경우 : w는 이러한 변경 사항을 디스크에 안전하게 기록합니다. : q는 편집기를 종료합니다. 이 작업을 : wq 및 Return 키와 결합 할 수 있습니다

파일 이름을 지정하지 않은 경우 : : wq filename.c는 파일 filename.c에 내용을 기록하고 편집기를 종료합니다. 작성한 텍스트에 관심이없고 아무것도 저장하지 않고 종료하려면 : q! 그리고 당신은 외출 중입니다! ! "예, 내용을 저장하고 싶지 않으며 긴급하게 나가고 싶습니다"라고 말해야합니다.

당신은 간다! 첫 번째 vi 파일을 방금 생성, 편집 및 저장했거나 저장하지 않았을 수 있습니다. 축하합니다

앞서 언급했듯이 이것은 VI (m)에 대한 초보자의 소개가 아닙니다. 시작해야 할 다른 기사가 많이 있습니다 (기사 끝 부분에서 참조 할 것입니다). 방금이 인트로를 삽입하여이 페이지에 방문한 후 배우고 싶은 내용을 찾은 후에 실망하지 않도록

이것은 초보자가 중간 사용자에게 작별 인사를하고 더 훌륭한 소개 기사에 대한 참조 섹션으로 향하는 라인입니다.

중간 사용자에게 오신 것을 환영합니다. 이것은 내가 몰랐던 VI (m)의 멋진 기능입니다. 하지만 이제는 매일 생산성을 높이기 위해 사용합니다.

TL; DR을 선호하는 분들 :

  • 탭 페이지
  • 세션
  • 줄 번호 (+ 표시) 및 복사 / 붙여 넣기
  • 주름
  • =를 사용한 들여 쓰기
  • 인서트 완성
  • 네르 위
  • 스플릿 / 윈도우
  • :! 그리고 조금 : make

Vim 탭 페이지

Vim에서 탭을 언급 했습니까? 나는 그것이 존재한다는 것을 몰랐다!

알아요! 탭 페이지는 맨 위에 레이블 (일명 탭)이있는 하나 이상의 창이있는 페이지입니다.

창, 버퍼, 탭 페이지에 대한 자세한 내용은 기술 정보를 참조하십시오.

보세요 :

Vim 탭 작동

단계 :

  • 모든 파일 또는 Vim으로 Vim 열기 : $ vim file1
  • 파일의 내용을 입력하고 명령 모드로 들어갑니다 (Esc를 누름)
  • : tabedit file2, 새 탭이 열리고 file2를 편집하게됩니다.
  • : tabedit file3, 새 탭이 열리고 file3을 편집하게됩니다.
  • 이러한 탭을 탐색하려면 일반 모드에 있고 : gt 또는 gT를 입력하여 다음 탭 또는 이전 탭으로 각각 이동할 수 있습니다. {i} gt를 사용하여 특정 색인 탭 (1에서 색인화 됨)을 탐색 할 수도 있습니다. 여기서 i는 탭의 색인입니다. 예 : 2gt는 두 번째 탭으로 이동합니다
  • 첫 번째 탭 또는 마지막 탭으로 직접 이동하려면 명령 모드에서 다음을 입력하십시오. 첫 번째 또는 마지막 탭에 대해 각각 : tabfirst 또는 : tablast. 앞뒤로 이동하려면 : tabn 다음 탭, : tabp 이전 탭
  • : tabs를 사용하여 열려있는 모든 탭을 나열 할 수 있습니다.
  • 탭에서 여러 파일을 열려면 : $ vim -p source.c source.h
  • 단일 탭을 닫으려면 : tabclose : 현재 탭을 제외한 다른 모든 탭을 닫으려면 : tabonly 접미사를 사용하십시오! 저장되지 않은 파일의 변경 사항을 무시하려면

이 기능을 통해 탭간에 버퍼를 공유하고 탭간에 붙여 넣기를 복사하고 작업 범주에 대해 다른 탭 세트의 여러 세션을 유지할 수있게함으로써 시간을 효과적으로 절약 할 수 있다고 생각합니다. 예 : 소스 코드 C 파일의 모든 Vim 탭이있는 터미널 탭만 있고 헤더 파일 (.h)의 모든 Vim 탭이있는 다른 터미널 탭이있을 수 있습니다.

탭은 모든 파일을 열어두고 원하는 때 액세스 할 수있는 매우 편리한 기능을 제공합니다. 그러나 터미널을 재부팅하거나 닫을 때마다 모든 탭을 여는 것이 고통스럽지 않습니까?

권리! 우리는 모두 일련의 파일로 작업하는 자체 작업 세션을 원하고 Vim이 해당 탭 세션을 복원 한 방식으로 복원하려고합니다.
Vim을 사용하면 해당 탭 세션을 저장하고 복원 할 수 있습니다!

단계 :

  • 작업하려는 탭을 원하는 수만큼 엽니 다
  • 아무 탭에서나 Esc 키를 누르고 명령 모드로 들어갑니다
  • : mksession header-files-work.vim을 입력하고 Enter 키를 누르십시오
  • 열린 탭의 현재 세션은 파일 header-files-work.vim에 저장됩니다
  • 복원 작업을 보려면 모든 탭과 Vim을 닫으십시오.
  • $ vim -S header-files-work.vim을 사용하여 세션에서 vim을 시작하거나 다른 파일로 vim을 열고 명령 모드를 입력하여 다음을 입력하십시오. : source header-files-work.vim 및 BOOM! 저장 한 방식대로 모든 탭이 열립니다!
  • 세션 탭을 변경하면 (새로 닫기 / 열기) : : mks! 당신이 세션에있는 동안

줄 번호를 몰라도 붙여 넣기를 복사 / 잘라낼 수 있습니까?

어 그래! 이전에는 복사 / 잘라 내고 싶은 함수의 줄 번호 (: set nu)를 보았습니다. 34 ~ 65 행을 복사 / 잘라 내고 싶다고 가정 해 보겠습니다. : 34,65y (복사 / Yank) 또는 : 34,65d (잘라 내기 / 삭제)를 사용했습니다.

물론 행 수를 세고 {n} yy 또는 {n} dd (여기서 n은 행 수임)를 사용하는 것은 수백 행에 대한 옵션이 아닙니다.

여러 페이지에 걸쳐있는 일부 기능이있을 수 있으며 첫 번째 행 번호를 잊어 버린 경우에만 내려 가고 싶지는 않습니다. 줄 번호에 대해 걱정하지 않고 간단한 방법으로이를 달성 할 수 있습니다!

단계 :

  • 일반 모드로 들어가서 시작 줄로 이동
  • mk를 입력하십시오 (알파벳 'k'로 포인트 표시 또는 다른 알파벳 사용)
  • 아래로 이동 (페이지 아래로 또는 기타)하고 끝 줄로 이동
  • y'k는 시작부터 끝까지 모든 줄을 잡아 당기거나 복사합니다.
  • d' k는 모든 줄을 처음부터 끝까지 자르거나 삭제합니다.

파일 상단에 성가신 긴 기능이 있으며 스크롤하거나 줄을 바꾸는 데 시간을 낭비하고 싶지 않습니다. 이것은 IDE가 아니기 때문에 질문이 많을 수 있지만 우연히 코드 블록을 접을 수 있습니까?

전혀! 그 줄 번호를 기억하는 것을 건너 뛰고 새로 찾은 사랑 * 마커 *와 함께 걸어 다니고 싶다고 가정 해 봅시다. 함수 본문의 시작으로 이동하여 mb를 입력하십시오. 이제 % (중괄호 일치) 또는 다른 편리한 기술을 사용하여 함수 본문의 끝으로 이동하여 zf'b를 누르면 완료됩니다!

이전과 이후:

전 후

줄 번호를 사용하는 것이 편한 경우 명령을 기억하기가 더 쉽습니다. : 5,16fo (fo는 코드 접기를 나타냄). 코드를 접 으면 zo (코드 접기 열기)와 zc (코드 접기 닫기)를 사용하여 열린보기와 닫힌보기를 쉽게 전환 할 수 있습니다. 너무 강조하지 마십시오. za를 사용하여 열린 주름과 닫힌 주름 사이를 전환하십시오.

함수를 큰 파일로 접는 데 상당한 시간을 소비했다고 가정 해 봅시다. 파일을 바로 열 때마다 해당 접힘을 유지하고 싶습니까? 그렇지 않은 경우 에너지를 낭비하는 이유는 무엇입니까 ??) ~ / .vimrc에 해결책이 있습니다. ~ / .vimr에 다음 줄을 삽입하십시오. 코드 접기가 저장 및 복원됩니다.

autocmd BufWinLeave *. * mkview
autocmd BufWinEnter *. * 자동로드보기

나는 보통 들여 쓰기에주의를 기울이지 만 때로는 다른 바보의 소스 코드를 편집해야하고 들여 쓰기없이 코드를 편집해야하는 버그가 있습니다. 그렇게하는 마법 같은 키 입력이 있습니까?

확실한! = i {처럼 간단합니다. 정말 그게 다야! (나는 내면의 대상이다)

전 후:

전 후

들여 쓰기하려는 블록 내의 아무 곳에 나 커서를 놓고 Esc를 눌러 일반 모드로 들어간 다음 = i {만 있으면됩니다. 팔! 전체 기능 본체 (내부 블록 포함)가 들여 쓰기됩니다.

참고 : 파이썬 파일의 들여 쓰기를 기대하지 마십시오 . Vim이 시작 및 끝 괄호를 사용하여 시작과 끝을 식별 할 수있는 경우에만 작동합니다)

> i {를 사용하여 블록 내에서 들여 쓰기를 늘리거나 줄일 수 있으며 일반 모드에서는

나는 꿈을 꾸고 있을지 모르지만 (* 떨리는 목소리 *), 나는 그것을 시도하고 싶다는 것을 의미한다. 음, 나는 이것을 이것으로 정말로 멀리 밀고 있을지도 모르지만 (* 5 초의 정지 *) .. 다음 질문으로

Vim은 비판을 받거나 그것이 IDE가 아니라는 사실에 직면하기 위해 열린 마음을 가지고 있습니다. 계속 진행하십시오.

음, 죄송하지만 플러그인이나 무언가와 함께 우연히 (* 패닝 *) vim이 IDE와 같이 자동 완성됩니까?

당신은 놀랄지도 모르지만 그렇습니다! 그리고 무엇을 추측…
* 드럼 롤 *
* 드럼 롤 *
* 드럼 롤 *
* 드럼 롤 *

플러그인없이!

내 말 들었어! Vim이 옵션을 보여줄 수있는 유일한 조건은“Vim이 무슨 말을해야하는지 알아야합니다”입니다. 포함 된 소스 파일이나 정의 된 함수 또는 변수를 통한 것일 수 있습니다.

입력을 시작한 다음 삽입 모드에서 Ctrl + n을 누르기 만하면됩니다.

C, Python 및 Java의 예

용도를 상상해보십시오! 특히 C 코드를 작성하고 정확한 OpenSSL 라이브러리 호출을 다시 수집 할 수없는 경우 헤더 만 포함하면됩니다.

OpenSSL 기능을 지원하는 Vim 자동 완성

다시 알림 : 플러그인 필요 없음

참고 : 헤더 파일이 Mac의 다른 위치에있을 수 있으며 Vim에서 찾지 못할 수 있습니다. Mac을 사용하여 Linux 컴퓨터에 로그인합니다. Mac을 사용하는 경우에는 죄송합니다.

Vim은 텍스트 편집기 일 뿐이지 만, 포커스를 잃지 않고 Vim을 종료하지 않고 작업하고 싶다면 모든 파일 이름을 기억할 수없는 경우 어떤 옵션을 사용할 수 있습니까?

간단합니다. VIM에서 제공하는 파일 탐색기 사용 예, Vim은 간단한 파일 탐색기를 제공합니다 (* 플러그인 없음 *). Vim 창에서 : : Explore 만 입력하면 및 화살표 키를 사용하여 탐색 할 수있는 파일 탐색기를 쉽게 탐색 할 수 있습니다. 파일 / 디렉토리를 열려면 Enter / Return 키를 누르십시오. 탐색기와 vim을 종료하려면 : q를 사용하십시오. vim을 종료하지 않고 열린 파일로 작업을 계속하려는 경우 다음 3 가지 옵션이 있습니다.

  1. 탐색기를 가로 (: Sexplore) 또는 세로 (: Vexplore) 분할로 열고 : q를 사용하여 탐색기를 종료하십시오.
  2. : Texplore를 사용하여 다른 탭 페이지에서 탐색기를 열고 : q를 사용하여 종료하십시오.
  3. 현재 창에서 파일 탐색기를 연 다음 현재 버퍼를 언로드하고 : bdel (버퍼 삭제)을 사용하여 버퍼 목록에서 삭제하십시오.
: vim 창에서 탐색하면 파일 탐색기가 표시됩니다.
참고 : 짧은 명령을 사용하여 파일 탐색기를 열 수도 있습니다.

때로는 일부 줄에서 동일한 단계를 반복하여 무언가를 편집해야합니다. 나는 Vim이 이것을 할 수있는 몇 가지 기능을 가질 것이라고 확신한다. 내가 맞아?

100 % 맞아! 매크로에 대해 이야기하고 있으며 Vim은 매크로를 지원합니다. 마지막으로 실행 된 명령을 반복하는 것은 간단하며 간단한 반복 작업을 수행 할 수 있습니다. 그러나 텍스트 처리가 결과를 얻기 위해 여러 단계로 구성되어 있으면 매크로가 유용합니다.

예제 C 헤더 파일을 고려하십시오.

void encrypt_text (char * text, int 바이트)
void decrypt_text (char * text, int 바이트)
void process_text (char * text, int 바이트)
void another_important_function (int 바이트, 배정도)

죄송합니다! 각 줄의 끝에 세미콜론을 넣는 것을 잊어 버렸고 모든 함수가 void 대신 정수 오류 코드를 반환한다는 것을 깨달았습니다.

한 줄을 변경하기 위해 수행해야하는 단계는 다음과 같습니다.

  • void라는 단어의 시작 부분에 커서를 놓습니다.
  • 일반 모드에서 cw를 눌러 void라는 단어를 삭제하고 int를 입력하십시오.
  • Esc 키를 누르고 Shift + a를 사용하여 줄 끝으로 이동합니다.
  • Esc를 누르고 ^를 눌러 편집 된 줄의 시작으로 돌아갑니다.

를 야기하는:

int encrypt_text (char * text, int 바이트);
void decrypt_text (char * text, int 바이트)
void process_text (char * text, int 바이트)
void another_important_function (int 바이트, 배정도)

이 일련의 단계를 기록하고 4 줄 모두에서 재생할 수 있습니다.

시퀀스를 시작하기 전에 일반 모드에서 qa를 눌러 알파벳 (예 : a)으로 매크로 기록을 시작하기 만하면됩니다. 이제 단계가에 기록됩니다. 모든 단계를 마쳤 으면 일반 모드에서 q를 누르십시오. 녹화가 종료됩니다. 이 단계를 재생하려면 매크로가있는 동안 커서를 같은 곳에 두십시오. @a를 누르면 완료됩니다! 팔! Vim은 해당 라인에서 동일한 단계를 반복합니다! 여러 줄에서 반복하려면 @a 명령을 한 번 사용한 후 @@을 사용할 수도 있습니다.

나는 Vim이 IDE에 가까운 곳에 없다는 것을 알고 있으며 부당한 희망을 가지고 있지만 빠른 질문 : Vim으로 가능한 파일의 원격 편집?

사용 가능한 리소스를 고려할 경우 :
[1] Vim
[2] openssh-client (대부분의 Linux 버전으로 설치됨)

당신은 운이 좋은 친구입니다! 예, Vim은 파일의 원격 편집을 지원합니다.
Vim은 openssh-client가 제공하는 scp (보안 복사본)에 의해 설정된 보안 연결 만 사용합니다. 여러 대의 원격 컴퓨터에서 파일 작업을 수행하는 경우가 많으며 하나의 파일을 편집하기 위해 컴퓨터에 로그인하는 데 시간이 낭비됩니다! 원격 시스템 자격 증명 및 경로 만 알고 있으면 현재 시스템에서 휴식을 취할 수 있습니다.

vim scp : // remoteuser @ remote_IP_or_hostname / relative / path / of / file

예를 들어 : /home/dev-john/project/src/main.c에 저장된 10.0.18.12의 파일을 편집해야하며 dev-john의 로그인 자격 증명이있는 경우 다음을 사용하여 main.c에 액세스 할 수 있습니다.

$ vim scp : //dev-john@10.0.18.12/project/src/main.c

dev-john의 홈 디렉토리에서 파일을 찾을 수 있기 때문에 상대 경로를 사용할 수 있습니다

힌트 : 원격 컴퓨터에 자주 액세스하는 경우 ssh 구성 파일을 만들어 연결 바로 가기를 만들 수 있습니다. ~ / .ssh / config 파일을 사용하여

호스트 원격 장치
    호스트 이름 10.0.18.12
    사용자 dev-john
    IdentityFile ~ / .ssh / id_rsa

이제 다음을 사용하여 파일에 액세스 할 수 있습니다.

vim scp : // 원격 -dev-machine / project / src / main.c

상대 경로를 기억하는 것이 혼란스럽고 직관적이지 않은 경우 다른 방법으로 지정할 수도 있습니다.

vim scp : //remote-dev-machine/~dev-john/project/src/main.c

대박! Vim의 기본 기능에 이미 기뻐하고 있습니다. 많은 일반적인 편집 문제에 대한 해결책이있는 것 같습니다. 봅시다 2000 줄이 넘는 파일이 있고 관심있는 기능은 9 행, 768 행 및 1898 행에 있습니다. 줄 번호를 사용하여 줄로 이동할 수는 있지만 그 번호를 기억하는 데는 좋지 않습니다. 나를 위해 아무것도 없습니까?

그럼 당연하지! 당신이 찾고있는 것은 Vim의 문자를 사용하는 로컬 북마크 솔루션입니다. 당신이해야 할 일은 :

  • 어느 위치에서나 임의의 라인에 커서를 놓으십시오
  • Esc 키를 눌러 정상 모드인지 확인하십시오
  • m {lowercaseletter}를 누르십시오. 여기서 {lowercaseletter}는 a-z의 문자입니다.
  • 파일을 탐색하기 위해 로컬 북마크를 만들었습니다.

모든 책갈피를 보려면 : Esc를 누르고 명령 모드로 들어가서 : marks를 입력하고 Enter / Return을 누르십시오. 북마크 목록이 표시됩니다. 언제든지 책갈피를 방문하려면 Esc를 누르고`{lowercaseletter}를 입력하십시오. 카붐! 북마크 한 곳에 커서가있는 정확한 위치에 도착합니다. 예:

Vim의 책갈피

을 사용하여 줄 21, 열 18에 로컬 책갈피를 만들었습니다. 1783 행에서 무언가를 편집하고 있다면 Esc 키를 누르고`a :

문제를 해결하려면 3 개의 로컬 북마크를 만들고 : marks를보고 빠르게 이동하면됩니다.

문제 해결

글로벌 북마크를 만들 수 있다고 말하면 어떻게 되나요?! 예, 글로벌 북마크도 만들 수 있습니다! 실제 링크를 만들 필요가 없다는 점을 제외하고는 창 또는 GUI 단축키 (또는 Linux 소프트 / 하드 링크)와 동일합니다. 내 말 들었어! 문자 그대로 / dir1의 파일 편집에서 다른 파일로 점프하고 Vim에서 / project / src /의 줄로 나가지 않고 바로 이동할 수 있습니다!

걱정하지 마십시오. 기억해야 할 새로운 것은 아닙니다. 당신이해야 할 일은 :
전역 문자를 만들려면 소문자 대신 대문자를 사용하십시오. 그게 다야! 정말! 동일한 프로세스를 사용하여 전역 책갈피로 이동합니다. 예 : mP를 사용하여 북마크를 만든 경우 Esc 키를 누르고`P and BAM! 전체 북마크로 이동합니다 (Vim은 경로를 기억하므로 경로에 대해 아무것도 입력하지 않아도됩니다)

local : : marks와 같은 방식으로 전역 책갈피에 액세스 할 수 있습니다.

:점수
마크 라인 열 파일 / 텍스트
 P 53 4 ~ / project / src / large-file.c
 11 0 ~ / project / README.md

참고 : 커서 위치에 관심이없고 책갈피 된 줄의 시작 부분에 있고 싶을 경우`P 대신 'P를 사용하십시오 (백 틱 대신 작은 따옴표를 사용하여 줄의 시작 부분에 위치 )

Vim이 탭과 함께 창 분할을 지원한다고 들었습니다! 탭이 훌륭하다는 것을 알고 있으며 여러 개의 열린 파일을 한 번에 사용할 수 있습니다. 그러나 분할은 어떻습니까? 내가 왜 그런 걸 원해?

시나리오 :

  • 다른 파일을 동시에 보면서 파일을 편집 할 수도 있습니다 (헤더 파일에서 선언을보고 C 함수를 정의하고있을 수 있습니다)
  • 동일한 파일의 상단 / 하단 부분을 동시에 보면서 파일의 일부를 편집 할 수 있습니다
  • 다른 파일의 다른 부분을 동시에 보면서 파일을 편집해야 할 수도 있습니다.

Vim은 가로 및 세로 화면 분할을 지원합니다. 또한 화면을 분할 할 때 파일 시스템을 탐색하여 파일을 열 수도 있습니다.

사용 가능한 옵션은 다음과 같습니다.

: split filename-창을 가로로 나누고 파일 이름을로드합니다
: vsplit 파일-수직 분할 및 열린 파일
ctrl-w 위쪽 화살표-커서를 창 위로 이동
ctrl-w ctrl-w-커서를 다른 창으로 이동 (사이클)
ctrl-w _-현재 창을 세로로 최대화
ctrl-w | -현재 창을 가로로 최대화
ctrl-w =-모두 같은 크기로 만들기
: sview 파일-split과 동일하지만 읽기 전용
: 닫기-현재 창 닫기
일반 창 (왼쪽 위), : split <파일> (오른쪽 위), : vsplit <파일> (아래)

업무용 창 최대화 :

전체 창을 차지하려면 창을 세로 및 가로로 최대화해야합니다.

크기 조정 :

CTRL-W [N]-현재 창 높이를 N만큼 감소 (기본값 1)
CTRL-W [N] + 현재 창 높이를 N만큼 증가 (기본값 1)
CTRL-W [N] <현재 창 너비를 N만큼 감소 (기본값 1)
CTRL-W [N}> 현재 창 너비를 N만큼 증가 (기본값 1)

창을 분할하는 동안 파일 탐색기를 사용하는 방법이 있습니까? (파일 이름을 항상 기억하고 입력 할 수 없습니다!)

물론 수평 파일 탐색기의 경우 : : Sexplore, 수직 파일 탐색기의 경우 : Vexplore 만 입력하면됩니다. 당신은 또한 사용할 수 있습니다 : Vexplore! 기본 탐색기 대신 오른쪽에서 파일 탐색기를 여는 방법

다시 말하지만,이 모든 것은 * 추가 ​​플러그인없이 * 작동합니다

일부 코드를 편집하는 중이며 쉘 명령을 신속하게 실행해야합니다. 작업 내용을 저장하고 Vim을 종료 한 후 명령을 실행해야합니까? 나는 Vim과 더 나은 방법이 있다고 확신합니다.

내기! Vim은 Vim을 떠나기를 원하지 않으며 계속해서 작업에 집중하기를 원합니다. 따라서 Vim 내에서 쉘 명령을 실행하는 옵션이 있습니다. 걱정하지 마세요. 저장하지 않은 모든 작업이 삭제되지 않고 명령과 BAM 만 실행하면됩니다. 저장되지 않은 / 저장된 파일로 안전하게 돌아 왔습니다!

코딩 세션이 진행 중이고 서명을 잊었 기 때문에 파일 작업의 매뉴얼 페이지를 살펴 보려면 빠르게 밖으로 나가야한다고 가정 해 보겠습니다. 작업 내용을 저장하거나 Vim을 종료 한 다음 맨 페이지를 확인하거나 맨 페이지 전용 탭을 열 필요가 없습니다. Vim 편집기 내에서 바로 명령을 실행할 수 있습니다.

왼쪽에서 오른쪽 (Vim에서 쉘 명령을 실행하고 편집기로 다시 이동)

맞춰봐! 놀랄 준비를하십시오. Vim은 또한 파일 내에서 make 명령을 지원합니다! Makefile을 사용하여 디렉토리를 탐색하기 만하면됩니다. 모든 파일 (소스 코드 일 수 있음)을 열고 모든 사항을 변경 한 후 저장하십시오. 컴파일 결과를보기 위해 종료 할 필요가 없습니다. Vim에서 바로 make 빌드를 실행할 수 있습니다.

Vim에서 빌드를 트리거링

마찬가지로 Makefile에서 다른 대상을 만들 수 있습니다!

예 : 빌드 디렉토리 정리

VIM의 make 명령을 사용하여 디렉토리 정리

이 멋진 기능이 Vim을보다 생산적으로 사용하는 데 도움이되기를 바랍니다.

귀하의 의견은 언제나 환영합니다.

의견을 말하거나 비판하거나 박수를 보내십시오

참고 문헌 :

  • http://www.openvim.com/tutorial.html
  • https://linuxconfig.org/vim-tutorial
  • ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf
  • http://vim.wikia.com/wiki/Tutorial
  • http://www.viemu.com/a-why-vi-vim.html
  • http://robertames.com/files/vim-editing.html
  • https://www.youtube.com/watch?v=wlR5gYd6um0