Press "Enter" to skip to content

[태그:] vi

vi 로 주석처리 여러줄 하기

  • 쬠 쉬운 방법
  • 블럭 세로 선택 후 // 처리하기

ctrl + v 로 원하는 만큼 세로 블록 설정

shift + i => 블럭이 사라져 보일수도 있으나 쫄지말고 계속 진행

// <= 주석 표시 입력. 아마도 한줄만 표시될텐데, 쫄지말고 계속 진행

ESC 2번 누르기 => 선택했던 블럭에 모두 //가 표시됨

  • 어려운 방법
  • 블럭 세로 선택 후 // 해제하기

ctrl + v 로 주석처리 했던 부분을 블럭 설정

x 눌러 지우기

  • 쪼끔 어려운 방법 : 별로 해볼일 없을듯…
  • 20라인부터 40라인까지 // 주석설정
:20, 40 s/^/\/\//g
  • 20라인부터 40라인까지 // 주석해제
:20, 40 s/^\/\///g

vi 명령어 몇개

  • 검색할때 대소문자 구분없이 검색하기

/search_text\c

  • 프로그램시 { 괄호 짝에 맞게 튀어 가기

%

  • 마지막에 사용한 명령어 반복하기

.

  • 취소(Ctrl+Z 와 동일)

u

  • 원복(Ctrl+Shift+Z와 동일

Ctrl+r

vi 탭문자를 스페이스 4개로 고정하기

탭문자를 스페이스 4개로 설정하여 프로그래머에게 유용한 코드 배열을 보여주는 형태를 만들어 보자

커맨드 모드에서 설정하는 방법 : 단점. vi를 재실행 하면 설정 값이 무효화 된다.


탭을 스페이스로 변환

:set expandtab

현재 탭을 스페이스로 전환

:retab

< , > 키로 들여쓰기, 내어쓰기 할때 탭을 스페이스로 변환할 갯수

:set shiftwidth=4
혹은
:set sw=4

탭당 스페이스 갯수

:set tabstop=4
혹은
:set ts=4

위 내용을 한줄로 설정

:set sw=4 ts=4 expandtab

초기 값을 파일로 설정하여 vi를 실행 할때마다 기본값으로 적용되게 한다.

일단 이 내용은 리눅스, 유닉스, 맥에서 사용가능하다.

홈디렉토리의 .vimrc 파일에 기본 설정을 등록할 수 있다.


파일 열기

vi ~/.vimrc

파일에 입력할 내용

set tabstop=4
set shiftwidth=4
set expandtab

참고로 추가(하이라이트 설정)

highlight Comment term=bold cterm=bold ctermfg=2

^M 을 한방에 없애보자…

^M이 뭔소린가 하는 분도 있을 것이다.

도스(윈도우)에서 텍스트 파일을 만들어서 유닉스 계열의 OS에서 읽으면 라인 맨 끝이 ^M이 하나식 붙는다.

눈에 거슬리는 거 빼면 그냥 텍스트 읽는 거에는 문제가 되지 않는다만, 이게 소스 일경우에는 문제가 커진다.

컴파일러는 ^M을 만나는 족족 에러로 뱉어주시기 때문이다.

어떻게 해결할까….

vi를 사용할 경우… 

vi 에서 Esc키를 눌러 명령 모드로 전환한 후, 다음 정규식으로 ^M을 치환한다.
복잡한 정규식은 아니고, 각행의 끝($)에 있는 ^M 기호를, 모두(g) 공백(//)으로 바꾸는(%s) 것이다.

:%s/^M$//g  

주의할 점은 ^M 을 키보드로 치면 안된다. 특수문자이기 때문에 Ctrl+V, M 키를 눌러서 입력해야 한다. 
Ctrl키를 누른 상태에서 v, m 이라는 2글자를 소문자로 연속으로 입력하면 된다.

안되면… ㅡㅡ;;;;;

쉘에서 dost2unix라는 유틸을 사용해 보자.

dost2unix <input.txt> output.txt  

input.txt에서 ^M 다 떼어네 output.txt로 만들어 준다.

얼라려? 그런데 또 이놈이 설치가 안되어 있는 경우도 있다. 헐~~~

sudo apt-get install dos2unix  

요렇게 설치하면 된다.