Home » vi

vi

jump 관련 명령 정리 – vim

vim에서 h,j,k,l 명령에만 익숙해지는 것도 사실 쉽지 않고, 일단 익숙해지면 이 키들을 연타하는 식으로 커서를 움직이는데, 특정한 위치로 바로 이동할 수 있는 jump관련 명령이 손에 익으면 그만큼 편리할 수가 없더라. jump와 관련된 명령들을 한 번은 정리하고 가자.

마커

m을 이용해서 현재 위치를 특정한 마커로 지정할 수 있고, 백팃 ` 이나 '작은 따옴표를 이용해서 그 위치로 되돌아 갈 수 있다. 보통 마크는 a-z, A-Z, 0-9 와 몇 가지 특수문자가 적용되는데, 특수문자들은 특별한 의미를 가지는 것들이다. 다음은 vim에서 사용되는 마커의 특징이다. 이 중에서 사용자가 임의로 설정할 수 있는 마커는 0-9,a-z,A-Z 이며, 이 각각은 문자의 종류에 따라 또 의미가 조금씩 다르다. 그 외에 편집/선택과 관련하여 특징적인 마커가 있으니 살펴봐두자.

  • a-z 영어 소문자는 일반적인 마크. 파일마다 따로 관리된다.
  • A-Z는 여러 파일간에 유지된다.
  • 0-9는 역시 여러 파일간에 유지되는데 … .viminfo 파일 내에 저장된다고 한다. 따라서 vim을 종료/재시작한 후에도 위치를 기억할 수 있다. (실제로 이는 vim을 빠져나갔을 때 위치를 기억한다고 한다.)
  • < > 는 이전 선택 영역의 처음과 끝을 가리킨다.
  • " 는 최종적으로 수정한 위치를 가리킨다.
  • ' 는 점프하기 이전 위치로 돌아간다.
  • ^는 삽입모드가 최종적으로 종료된 위치로 돌아간다.
  • .은 최종 변경이 시작된 위치이다.
  • [ ] 는 최종적으로 수정한 영역의 처음과 끝을 가리킨다.

:marks를 사용하면 현재 이동할 수 있는 마크들을 보여준다.더 보기 »jump 관련 명령 정리 – vim

여러 파일에 대해 한 번에 문자열 치환하는 방법들

문자열에 대한 찾기/바꾸기를 여러 파일에 대해 한 번에 적용하는 방법

Sublime Text 3 에서

Find > Find in Files... 메뉴를 사용하여 찾을 패턴, 찾을 폴더들 (,로 구분가능하며, 와일드카드 패턴으로 특정 확장자를 한정할 수 있다.) 지정하고 변경할 값을 만들어서 한 번에 적용 가능하다.
더 보기 »여러 파일에 대해 한 번에 문자열 치환하는 방법들

vim의 autocmd 이벤트들

vim은 특정 이벤트가 발생할 때 자동으로 명령을 수행할 수 있는데, 이를 au[tocmd]로 지정할 수 있다. 자동 명령 세팅 방법은 다음에 다루기로 하고, 오늘은 이들 이벤트에 대해서 좀 정리 버퍼 읽기/시작하기 BufNewFile 새 파일을 만들어서 편집하기 시작함 BufReadPre 파일을 읽기 전, 새 버퍼를 편집하기 시작함 BufRead 파일을 읽고 새 버퍼를 편집함 BufReadPost 위와 같이 파일을 읽고 새 버퍼를 편집함 (차이가?) BufReadCmd 새 버퍼를 시작하는 명령을 받았을 때 파일 읽기 FileReadPre :read 명령으로 새 파일을 읽기 직전 FileReadPost :read 명령으로 새 파일을… 더 보기 »vim의 autocmd 이벤트들

[업데이트]윈도의 gVim의 한글 폰트 설정 문제 2

원글을 처음 작성했을 때는 vim의 버전이 7.2였는데, 7.3버전의 vim을 쓰면서 encoding 설정값을 utf-8로 바꾸면 메뉴와 각종 메시지들이 깨져서 보이는 대참사를 겪는 문제가 있었다. 따라서 이 글의 원래 내용은 이 문제를 ‘시간차’로 피하고자 하는 꼼수였는데 보다 다른 방법으로 해결해 보고자 한다. 기존의 방식은 encoding의 값을 utf-8로 지정한 후 guifont 속성과 guifontwide속성을 사용해 영문과 한글에 적용되는 글꼴을 다르게 설정하는 것이었다. 이 때 guifontwide 속성은 인코딩이 utf-8일 때만 작동했고, 문제는 이 설정에서는 vim 7.3에서 메시지가 한글로 나오는 부분이 죄 깨지는 문제가 발생했다. 아울러… 더 보기 »[업데이트]윈도의 gVim의 한글 폰트 설정 문제 2

윈도용 gVim의 폰트 설정 문제

윈도용 gVim을 쓸 때 개인적으로 가장 싫었던(?)점은 다름 아닌 폰트 문제였다. 영문 글꼴의 가독성 때문에 고정폭 폰트인 Courier나 Consolas등을 쓰면 한글이 보기 싫은 모양으로 표시되고, 그렇다고 돋움체를 쓰자니 대문자 I와 소문자 l이 구분이 잘 되지 않는 등의 문제가 있다. 그래서 오늘은 추석 특집(?)으로 윈도용 gVim에서 한글과 영문의 글꼴을 따로 따로 설정하여 보기 좋은 화면을 만들 수 있는 팁을 공개하고자 한다. 보통 별다른 설정을 하지 않는다면 gVim의 폰트는 시스템 기본 폰트인 굴림[1. 실제로는 콘솔 기본 폰트인 Fixdays로 표시되는데, 이에 대응하는 굴림으로… 더 보기 »윈도용 gVim의 폰트 설정 문제

vi에서의 복사/붙이기

오랜만에 vi 글. 우분투를 쓸 때 vi는 정말 요긴한 도구이기는 하나 매우 긴 줄을 웹페이지에서 복사해서 붙이는 방법을 모르면 대략 난감한 상황이 오고, 아주 긴 내용을 붙여넣어야 할 때는 대략 정신이 멍해지기도 한다. vi 안에서 복사하기 붙이기 vi안에서 글자를 복사하고 붙일 때는 문자열을 “레지스터”라는 곳에 복사하고, 이를 붙여넣는다. 그런데 이 레지스터는 우리가 흔히 생각하는 클립보드와 완전히 다른 공간이다. (vi 프로그램에서 사용하는 메모리 공간의 일부이다.) 레지스터에 문자열을 복사하는 동작을 vi에서는 “yank”라고 표현하고 명령 모드에서 y키를 사용한다. <횟수>y<대상>의 형태로 y w는 커서의… 더 보기 »vi에서의 복사/붙이기

vi의 조금 편리한 기능들

사실은 조금 더 강력한 기능이랄까. 반복 . – (dot) 구두점은 마지막으로 실행한 명령을 다시 한 번 더 실행해준다. 명령의 반복은 다음과 같이 볼 수 있다. {숫자} {명령} – 명령 앞에 숫자를 붙이면 그 숫자만큼 반복하게 된다. 이동할 때 3 w라고 하면 세 단어를 이동하는 데 이것이 사실은 거의 모든 명령에도 적용될 수 있다. 2dd # 현재 줄을 포함하여 2줄을 삭제한다. 3p # 잘라낸 2줄을 3번 붙인다. 100iDescription <ESC> # ‘Description ‘을 100번 삽입한다. . # 위의 것을 1번 더 즉… 더 보기 »vi의 조금 편리한 기능들

vi 기본 사용법

vi은 대부분의 유닉스나 리눅스 시스템에 설치되어 있다고 믿어도 좋을만큼 널리 퍼져있는 텍스트 편집기이고, 매우 오랜 역사를 가지고 있는 텍스트 편집기이다. 일견, 상식적으로 이해가 힘들 것 같은 조작법 때문에 재미삼아 열어봤다가는 메뉴 등등 익숙한 문서 편집 프로그램에서 볼 수 있는 UI도 없기 때문에 낭패를 보기 십상이지만, 터미널에서 텍스트 파일을 작성하거나 편집할 때 유용하게 사용할 수 있다. 익혀두면 좋을 뿐더러 엄청 편리한 기능들을 제공하기 때문에 오늘날에도 많은 개발자들의 사랑을 받고 있는 편집기..라고 한다. 텍스트로 구성된 설정파일이나 하다 못해 hosts 파일 수정에는 더… 더 보기 »vi 기본 사용법