Computer >> 컴퓨터 >  >> 프로그래밍 >> Bash 프로그래밍

bash-support 플러그인으로 Vim을 강력한 Bash IDE로 만들기

bash-support 플러그인으로 Vim을 강력한 Bash IDE로 만들기이 글은 SathiyaMoorthy가 작성했습니다.

이 글은 Vi / Vim 팁 & 트릭 시리즈의 일부입니다. Linux 시스템 관리자나 프로그래머라면 bash 셸 스크립트를 작성할 때 다음과 같은 반복적인 작업을 자주 수행하게 됩니다.

  • 파일 헤더 추가
  • 함수 및 프레임 주석 추가
  • 기본 코드 스니펫 삽입
  • 문법 검사 수행
  • 함수 관련 문서 확인
  • 코드 블록을 주석으로 변환하거나 그 반대로 변환

bash-support Vim 플러그인은 이러한 모든 작업을 가장 손쉽게 처리할 수 있게 해주어, 많은 시간과 키 입력을 절약해 줍니다.

이 플러그인은 Fritz Mehner가 개발했으며, 그는 플러그인의 목적을 "메뉴와 단축키(hotkey)를 사용해 BASH 스크립트를 작성하고 실행하는 것"이라고 설명합니다.

이 글에서는 플러그인을 3단계로 간단히 설치하는 방법과 함께, 생산성을 높여주는 8가지 강력한 기능을 살펴보겠습니다.

bash-support 플러그인 설치 3단계

1단계: bash-support 플러그인 다운로드

vim.org 웹사이트에서 플러그인을 다운로드합니다.

$ cd /usr/src
$ wget -O bash-support.zip https://www.vim.org/scripts/download_script.php?src_id=9890

2단계: bash-support Vim 플러그인 설치

$ mkdir ~/.vim # 디렉터리가 아직 없는 경우에만 실행
$ cd ~/.vim
$ unzip /usr/src/bash-support.zip

3단계: ~/.vimrc에서 플러그인 활성화

Vim 편집기에서 플러그인을 사용하려면 ~/.vimrc 파일에 다음 줄을 추가합니다.

$ vim ~/.vimrc
filetype plugin on

Bash Vim 플러그인의 8가지 강력한 기능

기능 1: *.sh 파일에 자동 헤더 추가

.sh 확장자를 가진 파일을 열면 아래와 같은 헤더가 자동으로 생성됩니다. 동시에 커서가 Insert 모드로 전환되어 Description 필드에 위치하므로 바로 설명을 입력할 수 있습니다.

#!/bin/bash
#============================================================
#
#          FILE:  myscript.sh
#
#         USAGE:  ./myscript.sh
#
#   DESCRIPTION:
#
#       OPTIONS:  ---
#  REQUIREMENTS:  ---
#          BUGS:  ---
#         NOTES:  ---
#        AUTHOR:   (),
#       COMPANY:
#       VERSION:  1.0
#       CREATED:  02/14/09 15:42:08 IST
#      REVISION:  ---
#============================================================

AUTHOR과 COMPANY의 기본값을 변경하려면 ~/.vimrc에 다음 줄을 추가합니다.

let g:BASH_AuthorName   = 'SathiyaMoorthy'
let g:BASH_Email        = 'subscribe@thegeekstuff.com'
let g:BASH_Company      = 'Open Source Corporation'

이제 새 bash 스크립트 파일을 만들면 아래와 같이 수정된 AUTHOR과 COMPANY 값이 헤더에 표시됩니다.

#!/bin/bash
#============================================================
#
#          FILE:  myscript.sh
#
#         USAGE:  ./myscript.sh
#
#   DESCRIPTION:
#
#       OPTIONS:  ---
#  REQUIREMENTS:  ---
#          BUGS:  ---
#         NOTES:  ---
#        AUTHOR:  SathiyaMoorthy (), subscribe@thegeekstuff.com
#       COMPANY:  Open Source Corporation
#       VERSION:  1.0
#       CREATED:  02/14/09 15:39:58 IST
#      REVISION:  ---
#============================================================

참고: 헤더에 사용자 지정 필드를 추가하려면 ~/.vim/perl-support/templates/bash-file-header 파일을 수정하여 원하는 필드를 직접 추가하면 됩니다.

기능 2: \sfu로 Bash 함수 추가

서브루틴을 작성하려면 노멀(Normal) 모드에서 \sfu를 입력하세요. 그러면 함수 이름을 입력하라는 프롬프트가 나타나고(그림 1), 기본 함수 골격이 포함된 서브루틴이 자동으로 삽입됩니다(그림 2).

bash-support 플러그인으로 Vim을 강력한 Bash IDE로 만들기

그림 1: \sfu를 입력해 셸 스크립트에 bash 함수 추가하기

bash-support 플러그인으로 Vim을 강력한 Bash IDE로 만들기

그림 2: 셸 스크립트에 자동으로 삽입된 bash 함수

기능 3: \cfu로 함수 헤더 삽입

함수 헤더를 삽입하려면 노멀 모드에서 \cfu를 입력하세요. 그러면 그림 3과 같은 주석 블록이 생성됩니다.

bash-support 플러그인으로 Vim을 강력한 Bash IDE로 만들기

그림 3: \cfu를 입력해 셸 스크립트에 함수 헤더 삽입하기

기능 4: \cfr로 프레임 주석 추가

프레임 주석(frame comment)을 추가하려면 노멀 모드에서 \cfr을 입력하세요. 그러면 그림 4와 같이 서식이 갖춰진 주석이 자동으로 생성됩니다.

bash-support 플러그인으로 Vim을 강력한 Bash IDE로 만들기

그림 4: \cfr을 입력해 셸 스크립트에 프레임 주석 삽입하기

기능 5: 셸 스크립트에 Bash 문(statement) 삽입

문장을 삽입할 때 사용할 수 있는 단축키는 다음과 같습니다.

  • \sc — case in … esac
  • \sl — elif then
  • \sf — for in do done
  • \sfo — for ((…)) do done
  • \si — if then fi
  • \sie — if then else fi
  • \ss — select in do done
  • \st — until do done
  • \sw — while do done
  • \sfu — function
  • \se — echo -e "\n"
  • \sp — printf "\n"

예제: case 문 자동 삽입하기

\sc를 입력하면 case 문이 삽입되고, 커서가 INSERT 모드로 case 문 바로 옆에 위치합니다(그림 5). 이처럼 위 목록의 모든 단축키를 활용하면 필요한 문장을 즉시 삽입할 수 있습니다.

bash-support 플러그인으로 Vim을 강력한 Bash IDE로 만들기

그림 5: \sc를 입력해 bash 셸 스크립트에 case 문 삽입하기

기능 6: \nr로 미리 정의된 코드 스니펫 삽입

코드 스니펫은 \nr(읽기)과 \nw(저장) 명령으로 각각 불러오거나 등록할 수 있습니다. 플러그인에는 코드에 바로 삽입할 수 있는 몇 가지 기본 코드 스니펫이 함께 제공됩니다.

$ ls -1 ~/.vim/bash-support/codesnippets/
assert
basename+pathname
basename-function
check-number-of-command-line-arguments
create-tempfile
create-tempfile-with-trap
free-software-comment
read-and-split-into-array
timestamp
usage-and-command-line-arguments.noindent
use-file-descriptor-read
use-file-descriptor-write
well-behaved-script

예를 들어 check-number-of-command-line-arguments 스니펫을 포함하려면 \nr을 누른 뒤 파일 이름을 입력하라는 프롬프트에 check-number-of-command-line-arguments를 입력합니다. 그러면 아래 코드가 셸 스크립트에 자동으로 삽입됩니다.

#-----------------------------------------------------------------------
#  Check number of command line arguments
#-----------------------------------------------------------------------
if [ $# -lt 1 ]
then
echo -e "\n\tUsage:  ${0##/*/} File\n"
exit 1
fi

참고: 자신만의 코드 스니펫을 만들어 ~/.vim/bash-support/codesnippets/ 디렉터리에 저장할 수도 있습니다. 기존 코드에서 스니펫을 만들려면 해당 코드 부분을 선택한 후 \nw를 누르고 파일 이름을 지정하면 됩니다. 이후부터는 \nr과 파일 이름을 입력해 언제든 자신만의 코드 스니펫을 불러올 수 있습니다.

기능 7: Bash 내장 명령어 빠른 도움말 보기

bash 내장(built-in) 명령어의 도움말 페이지를 확인하려면 커서를 해당 단어 위에 놓고 \hh를 입력하세요.

아래 예제(그림 6)에서는 read라는 bash 내장 명령어 위에서 \hh를 입력했고, read 명령어에 대한 빠른 도움말이 화면에 표시되었습니다. 같은 방법으로 모든 bash 내장 명령어의 도움말을 즉시 확인할 수 있습니다.

bash-support 플러그인으로 Vim을 강력한 Bash IDE로 만들기

그림 6: \hh를 입력해 선택한 bash 내장 명령어의 도움말 보기

기능 8: 키워드 주석 기능

다음 명령어들은 각각 대응하는 키워드 주석을 추가합니다. 예를 들어 \ckb를 입력하면 셸 스크립트 안에 BUG 주석 줄이 추가됩니다.

  • \ckb — BUG 키워드
  • \ckt — TODO 키워드
  • \ckr — Tricky 키워드
  • \ckw — WARNING 키워드

\ckt를 입력하면 "# :TODO: mm/dd/yy:: " 형식의 주석 줄이 추가됩니다. 이 주석은 TODO 목록 역할을 하므로, 나중에 처리하고 싶은 항목들을 여기에 기록해 두면 됩니다.

bash-support 플러그인으로 Vim을 강력한 Bash IDE로 만들기

그림 7: \ckt를 입력해 bash 셸 스크립트에 TODO 추가하기

bash-support 플러그인에는 이 외에도 다양한 강력한 기능이 포함되어 있습니다. 자세한 내용은 아래 위치에서 제공되는 문서를 참고하세요.

  • README : ~/.vim/README.bashsupport
  • PDF : ~/.vim/bash-support/doc/bash-hot-keys.pdf
  • 온라인 bash-support vim 플러그인 문서
  • 플러그인에는 도움말 파일(bashsupport.txt)이 포함되어 있으며, :h bashsupport 명령으로 볼 수 있습니다
  • [ :helptags ~/.vim/doc 으로 도움말 태그를 생성한 후 :h bashsupport 실행 ]
  • 이 플러그인의 추가 스크린샷

추천 도서

bash-support 플러그인으로 Vim을 강력한 Bash IDE로 만들기Ramesh Natarajan의 Vim 101 Hacks. 저는 명령줄 애호가이며, 자연스럽게 Vi와 Vim 편집기의 열렬한 팬이기도 합니다. 몇 년 전 Linux에서 C 코드를 많이 작성하던 시절, 접할 수 있는 모든 Vim 에디터 팁과 트릭을 읽곤 했습니다. 그 당시의 Vim 에디터 경험을 바탕으로, 고급 Vim 기능을 다루는 101가지 실전 예제를 담은 Vim 101 Hacks 전자책을 집필했습니다. 이 책은 Vim 편집기를 더욱 빠르고 생산적으로 활용하는 데 큰 도움이 될 것입니다. Vi와 Vim을 오랫동안 사용해 왔더라도 이 책을 아직 읽지 않았다면 꼭 한번 읽어보시길 권합니다. Vim 편집기의 숨겨진 능력에 놀라게 되실 것입니다.