카드 탐색기(Browser)


카드 탐색기는 카드를 통합적으로 관리하고 편집하기 위한 탐색기(Browser)이다.

 

메인 메뉴에서 탐색을 누르면 카드 탐색기(Browser)가 나타난다.



앞서 노트 추가창(Note Editor)를 이용하여 AwesomeTTS를 사용했을 때는 노트 하나하나에 오디오 사운드 파일을 만들고 [sound] 태그를 만들어 필드에 삽입했다. 하지만 AwesomeTTS는 카드 탐색기에서 오디오 생성을 원하는 노트와 카드를 모두 선택해서 한꺼번에 오디오 파일을 생성할 수 있어 대량의 작업을 매우 수월하게 마칠 수 있다.

 


카드 탐색기에서 AwesomeTTS 사용하기


 카드 탐색기에서 오디오 사운드를 생성할 노트에 속하는 카드들을 지정한다. 



 

 브라우저 상단의 메뉴에 "AwesomeTTS" 메뉴에서 "Add Audio to Selected..."를 선택한다




 원하는 서비스와 옵션을 구성한다.

 

 사운드 확인

Preview의 입력 필드에 간단한 문장을 타이핑하고 [Preview] 버튼을 클릭하여 원하는 오디오 사운드가 생성되는지 확인하라.

 

 소스필드(Source Field) 선택


이제 소스 필드(Source Field)의 드롭다운 목록에서 AwesomeTTS가 텍스트를 읽어 오디오 사운드로 바꿀 때 어떤 필드에서 텍스트를 읽어올지 선택하라.


 목적 필드(destination field) 선택


생성된 [sound] 태그나 파일경로가 입력될 목적 필드(destination field)를 드롭다운 목록에서 선택하라.


 목적 필드(dsetination field)에 생성될 오디오 사운드첨가(Append)할 것인지 덮어쓸(Overwrite) 것인지 선택


만일, 입력할 목적 필드에 있는 텍스트를 그대로 유지하길 원한다면 첨가(append)를 선택하고, 전체 텍스트를 지우고 사운드로 대체할 것이라면 덮어쓰기(overwrite)를 선택하면 된다. 


첨가(Append)할 경우,

기존에 있던 [sound] 태그를 지울지 말지를 "remove existing옵션을 체크하여 결정할 수 있다. 체크하면 기존의 [sound] 태그를 지우고 새로운 [sound] 태그를 첨가할 것이고, 체크를 해제하면 기존에 있던 [sound] 태그를 지우지 않고 거기에 추가적으로 [sound] 태그를 더한다.


덮어쓸(overwriting) 경우

"wrap the filename옵션의 체크를 해제하여 오디오의 [sound] 태그 대신 노출 경로를 저장하도록 할 수 있다. , 노출 경로를 사용하도록 하는 옵션은 구버전과 호환되도록 하기 위해서 제시한 것일 뿐 별로 추천하지 않는다. 만일, 노출 경로를 사용하면 Anki는 사용중인 미디어 파일을 자동으로 찾지 못하게 된다.

 

 [Generate] 버튼을 클릭하여 처리과정을 시작한다. 필요하다면 중간에 처리과정을 중단할 수도 있다.



AwesomeTTS노트 추가창이나 카드의 탐색기에서 오디오 사운드를 만드는 방법은 해당 노트의 필드에 [sound] 태그를 삽입하고 Anki 컬렉션에 오디오 파일을 만들어 저장하는 것이다. 이 때 만들어진 태그들은 Anki에서 원래 사용하는 것이어서 모든 버전에서 자체적으로 인식할 수 있는 것이기 때문에 일단 한번 만들어지면 AwesomeTTS가 없이도 재생이 가능하다.


그 외 알아두면 좋은 사항들


1) 카드 앞뒷면에서 오디오 사운드 재생

카드 앞뒷면에서 동일한 오디오 사운드를 재생되게 하려면 [sound] 태그가 있는 필드가 카드의 앞뒷면에 모두 배치되어 있어야 한다. 따라서 사운드나 TTS를 위한 특정 필드를 만들어 카드 템플릿에서 앞면과 뒷면에 해당 필드를 배치하AwesomeTTS로 오디오 사운드를 만들 때 목적 필드(destinaton field)를 이 특정 필드로 지정해주면 된다.

 

2) 소스 필드목적 필드가 없는 경우

만일, 카드 브라우저에서 선택한 다양한 카드와 노트 중에서 오디오를 생성할 텍스트를 가진 소스 필드와 생성된 사운드를 집어넣을 목적 필드가 없는 카드와 노트가 선택되어 있을 경우 해당 노트와 카드에서는 오디오 사운드를 생성하지 않고 그냥 건너뛰게 된다.


3) 텍스트 필터링

AwesomeTTS는 작업을 수행하면서 특정 텍스트를 자동으로 필터링할 수 있다. 가령 괄호 속에 있는 텍스트 같은 것들 말이다. 빈칸 카드에서 이 빈칸을 어떻게 다룰지는 경우에 따라서 조정할 수 있다. 이 설정에 대한 자세한 사항은 구성(Configuration) 화면에서 텍스트 탭으로 가라.

 

4) 작업 취소

작업을 하다가 실수할 수 있다. 이런 경우 카드 브라우저 상단의 편집(Edit) 메뉴에 들어가면 AwesomeTTS Batch Update 취소를 선택하여 이를 취소할 수 있다.

 

5) 사용 트래픽 제한에 따른 조치

대량으로 오디오를 생성할 때 대부분의 서비스들은 그 사용 트래픽이 제한되어 있다. 이 사용 트래픽 제한은 서비스당으로 설정되어 있으므로 하나의 서비스만 이용하지 말고 서비스들을 그룹으로 묶어서 요청을 분산시킬 수 있게 하는 것이 바람직하다.

 

6) 여러 노트에서 한번에 오디오를 삭제하고 싶다면 카드 브라우저 상단의 메뉴에 AwesomeTTS메뉴에서 "Remove Audio from Selected"를 선택하면 된다. 





노트 추가창(Note Editor)


노트 추가창(Note Editor)은 원하는 노트를 하나하나 편집하여 추가하는 가장 기본적인 창이다.

 

메인 메뉴 상단의 추가 버튼을 클릭하면 노트 추가창(Note Editor)이 나타난다.




이렇게 열린 노트 추가 창에서는 AwesomeTTS를 이용하여 오디오 파일들을 하나하나 더하거나 업데이트할 수 있다.




AwesomeTTS 사용하여 노트 추가창에 오디오 삽입하기



1) 노트 추가창에서 오디오 [sound] 태그를 두고 싶은 입력 필드를 활성화한다.


필드란 우리가 공부할 내용을 기입할 수 있는 공간으로 아래에서 빨간 테두리로 나타낸 곳들이 전부 필드이다. 만약, 새로운 필드를 만들고 싶으면 [필드...] 버튼을 눌러 필드를 추가하면 된다.


 


 


2) 도구 상자에서 스피커 모양의 아이콘을 클릭하면 바로 AwesomeTTS오디오를 노트에 추가할 수 있는 대화상자가 열린다.





3) 원하는 서비스를 선택하고 옵션들을 구성한다.

 

서비스에 대해서는 앞서 포스팅한 03 AwesomeTTS에서 제공하는 TTS 서비스에 대해서... 를 참조하여 마음에 드는 서비스를 찾아보면서 실험해보길 바란다. 이 경우에는 자주 쓰이는 Google Translate를 이용하였다. 



4) 입력된 구문이 제대로 입력되었다는 것을 최종확인하고 [Preview] 버튼을 클릭하여 소리가 잘 나오는지 확인한다.


TTS로 사운드로 전환할 텍스트Preview and Record 박스 안에 나타난다. 그리고 이 박스 안에는 우리가 TTS를 입력하기 위하여 스피커 모양의 버튼을 눌렀을 때 커서가 있던 필드의 텍스트가 그대로 입력되어 있을 것이다(그래서 위의 사진에는 아무런 텍스트도 기입되어 있지 않다). 다른 텍스트를 사운드로 전환하려면 해당 박스에 원하는 내용을 기입하면 된다.

 

가령, 아래와 같이 사운드로 바꿀 텍스트를 korea로 바꾸고 사운드를 확인해보자




[Preview] 버튼을 누르면 korea를 읽는 Google Translate 사운드를 들을 수 있다.



5) 마지막으로 [Record] 버튼을 눌러 오디오 클립을 필드에 삽입한다.

 

[Preview] 버튼을 눌러 확인한 사운드가 마음에 들었다면 [Record] 버튼을 눌러 오디오 클립을 필드에 삽입한다.



[Record] 버튼을 누른 후에는 Front 필드korea라는 텍스트를 읽어낸 오디오 클립이 [sound]태그 형태로 필드에 삽입된다.

 



이 때, [Record] 버튼을 누른 후 해당 오디오 파일이 생성되어 미디어 컬렉션에 저장되고 이 생성된 오디오를 [sound] 태그로 호출하는 형식이므로 Anki의 모든 버전에서 자체적으로 인식이 가능하고 일단 한번 만들어지면 AwesomeTTS가 없어도 해당 오디오 파일을 재생하는데 전혀 문제가 없다.

 


그 외 알아두면 좋은 사항들


1) 텍스트 자동 인식

 AwesomeTTS를 사용하기 위해서 스피커 모양의 아이콘을 클릭하면 대화상자(Add TTS Audio to Note)가 나타나는데 이 대화상자에는 입력필드에 있는 텍스트를 자동으로 오디오로 전환하려고 하는 텍스트로 인식한다만일 입력필드가 비어있다면 AwesomeTTS클립보드에 임시로 저장되어 있는 텍스트를 자동으로 오디오로 전환하려고 하는 텍스트로 인식한다. 이 부분의 옵션은 구성(Configuration) 화면의 텍스트(Text) 에서 조정하면 된다.

 

2) 오디오 삭제

노트에 추가한 오디오들이 마음에 들지 않을 때, 카드 탐색기를 이용하면 한꺼번에 오디오를 삭제할 수 있다.

 

3) 단축키

노트 추가창에서 AwesomeTTS를 실행하는 단축키는 Ctrl+T(또는 Mac OS X에서는 Cmd+T)이다. 그런데 이 단축키는 LaTex의 단축키를 덮어쓰게 되므로 LaTex의 단축키를 보존하고 싶다면 AwesomeTTS구성(Configuration)에서 이를 조정하면 된다.



 

AwesomeTTS 서비스 형식


AwesomeTTS는 자체적으로 텍스트를 스피치 사운드로 변환시키는 것이 아니라 이미 온라인이나 OS 등에서 제공하는 TTS 서비스에 텍스트를 스피치 사운드로 변환시켜 달라는 요청을 보내고 그 응답을 받는 형식의 소프트웨어다.


그러다 보니 어떤 TTS 서비스를 사용할 것인지가 스스로 알아보고 찾아둘 필요가 있다



사용자 컴퓨터에 설치된 TTS 소프트웨어(Local Software)


Anki 사용 중에 AwesomeTTS의 오디오 생성 대화상자를 처음 열었을 때, 사용자의 시스템에 TTS 서비스가 설치되어 있고 해당 TTS 서비스가 AwesomeTTS가 지원하는 형식일 경우 AwesomeTTS는 자동으로 해당 TTS 서비스를 찾아서 서비스 목록에 등록한다. 만일, 어떤 서비스가 본인의 AwesomeTTS 서비스 항목의 드롭다운 메뉴에 나타나지 않는다면, 이는 AwesomeTTS가 그 서비스를 찾지 못했거나 사용할 수 없는 것이다.

 

AwesomeTTS와 같이 사용할 새로운 소프트웨어를 설치하기로 결정했다면 AwesomeTTS가 새로 설치된 소프트웨어를 인식하기 전에 Anki를 다시 시작할 필요가 있다는 점을 주의하라.

  

아래 서비스 항목은 간략하게 정리한 것이다. 아래 정리된 내용은 사용자 컴퓨터에 설치하여 사용할 수 있는 그저 몇 가지 주요 TTS 서비스를 정리해둔 것이다. 서비스의 상세한 내용은 링크를 따라 홈페이지를 참조하길 바란다.

 

§Ekho


한국어와 몇 가지 중국어 방언(WindowsLinux)


§eSpeak


광범위하게 많은 언어들에서 TTS 서비스를 제공(WindowsLinux)

 

§Festival


기본적으로 영어를 지원하고 다른 언어들도 별도로 설치가 가능하다. (Linux만 가능)

 

§iSpeech


다양한 언어에 대한 고품질의 소리를 제공하는 API를 제공하지만 유료


§Microsoft Speech API (SAPI)


윈도우의 데스크탑 소프트웨어에서 TTS 재생이 가능하도록 구축된 인터페이스


§OS X Speech Synthesis Manager


시스템 환경설정을 통해서 많은 언어들을 설치할 수 있다. Mac OS X에 구축되어있다.


§RHVoice


러시아어, 조지아어, 영어 그리고 에스페란토어에 대하여 서비스를 제공해준다. Linux는 기본적으로 설치되어 있고 Windows에서는 SAPI를 통해서 제공된다.


§SVOX Pico


Android 운영체제에서 사용되는 음성 합성기


위에서 몇가지 서비스에 대해서 언급하고 있지만 결국 주로 온라인 TTS 서비스인 Google Translate를 많이 사용하고, 윈도우즈 사용자라면 대부분 Microsoft Speech API (SAPI), 맥 계열일 경우 OS X Speech Synthesis Manager를 주로 사용하는 것으로 알고 있다. 그 외에, 온라인에서 NAVER translate에서 제공하는 서비스도 볼 수 있다. 다양한 서비스를 실험해보고 사용자들이 마음에 드는 서비스를 골라볼 필요가 있다.







AwesomeTTS 설치하기


일단, AwesomeTTS를 설치해보자.

 

Anki를 실행하고 아래와 같이 메인 메뉴에서 도구 추가 기능(A) 둘러보고 설치하기를 클릭한다.


 



그러면 설치 코드를 기입할 수 있는 대화창이 아래와 같이 나타난다. AwesomeTTS 설치 코드를 알면 해당 코드를 집어넣고 확인을 클릭하고 코드를 모르면 탐색을 눌러 추가 기능을 볼 수 있는 웹페이지로 이동한다.




추가 기능 페이지의 가장 상단에 AwesomeTTS가 나타나 있다. 이를 클릭한다



 

그러면 AwesomeTTS에 대한 설명과 소개가 있는 화면이 나타나고 그 아래에는 설치 코드가 표시된다. 코드를 복사한다.




 복사한 코드를 다시 추가 기능 설치 대화창의 코드 부분에 붙여넣고 확인을 클릭한다.





그러면 다음과 같은 설치 성공 메시지가 나타난다.


 


Anki를 다시 시작한 후에 도구 추가 기능(A)을 눌러보면 아래와 같이 AwesomeTTS가 설치되어 있는 것을 확인할 수 있다.


 




AwesomeTTS 란 무엇인가?


매우 Awesome(끝내주는) TTS(Text to speech)라는 의미로 읽고 있다.

 

, 간단하게 말하면 컴퓨터가 텍스트를 소리내어 읽어주는 끝내주는 추가 기능인 셈이다.

 

그럼 정말 끝내주는 추가기능일까?


1) 이미 사용자들에게 인정받은 추가 기능


내가 2015년 말부터 Anki를 들여다보기 시작했는데, 그 때부터 지금까지 추가 기능(Add-on)의 순위에서 거의 항상 부동의 1위를 유지할 정도로 Anki에서는 사람들에게 사랑받고 있는 추가 기능이다.

 

2) TTS 서비스 사용에 있어 편의성을 극대화


직접 사용해보니, 일단 몇 가지만 파악하면 AwesomeTTSAnki 카드에 너무나 쉽게 오디오 사운드를 집어넣을 수 있고 상황에 따라서 다양하게 사용할 수 있어 정말 쓸만하.

 

또, 좋은 점은 다양한 TTS 서비스를 Anki에 쉽게 사용할 수 있다는 점이다. 우리가 TTS 서비스를 이용하여 카드를 만들려면 우선, 다양한 TTS 서비스를 찾아서 공부하고자 하는 언어를 읽을 수 있는지 그 품질이 좋은지 확인해야 한다. 그리고 해당 TTS 서비스를 통해서 얻은 오디오 파일을 다시 조작하고 카드에 붙여넣는 작업을 전부 손으로 해야 한다. 하지만 AwesomeTTS를 설치하면 사용 가능한 대부분의 TTS 서비스를 찾을 필요 없이 그 자리에서 바로 실행해보고 오디오 품질을 확인할 수 있다. 뿐만 아니라 카드에 바로 해당 사운드 오디오를 삽입하는 과정이 거의 자동으로 이루어지므로 그 편안함이 이루 말할 수 없다.

 


그 외에도 Anki 카드를 만들어 사용하는 과정에서 다양한 방식으로 오디오 사운드를 삽입하고 제거할 수 있는 등 그 편의성이 뛰어나고 다양한 설정을 적용할 수 있다는 점도 장점이다.


3) 어학 공부에 있어 TTS의 필요성

 

어학을 공부할 때, 글자를 익히고 단어를 외우는 과정은 반드시 필요하다 하지만 단순히 글자로만 어학을 공부하게 되면 언어를 귀로 듣고 이해하는 과정이 없어 공부의 질과 효율이 좋을 수 없다. 

 

물론, TTS는 컴퓨터가 읽어주는 것이므로 사람의 목소리만큼 생동감이 있지는 않다. 따라서 복잡한 감정이 표현되는 문장을 TTS로 읽을 때는 어색함이 느껴질 수밖에 없다. 하지만 단순한 단어는 그 발음과 악센트를 명확하게 읽어주기 때문에 단순히 글자와 발음기호를 눈으로 보는 것과는 비교할 수 없을만큼 효율적인 단어 학습이 가능해지게 된다.

 

4) 오디오를 이용한 짜투리 시간 활용성 극대화


또한, 이를 응용하면 이제껏 눈으로 보고 확인하던 학습에서 귀를 이용한 학습을 할 수 있게 만들어준다. , 카드를 볼 필요 없이 음성을 제공해주므로 지하철의 이동구간이나 산책, 운동을 하면서도 일일이 카드를 볼 필요 없이 학습을 지속할 수 있게 되므로 짜투리 시간을 활용한 학습을 가능하게 해주는 것이다



기초 사용법 마무리



이제껏 vim에 대해서 기초적인 것들은 대부분 언급한 것 같다. 이 다음 단계는 vim의 각종 플러그인을 사용해보고vim 프로그래밍 스크립트를 작성하는 것이다.

 

스스로의 공부를 위해서 공부할 내용을 짧고 간결하게 제시하고 이를 앙키(Anki)로 정리하여 첨부한 것이 Ankilog. 그리고 vim을 익히려면 우선적으로 어느 정도 수준으로는 사용할 수 있게 만들어놓아야 그 때부터 실제 작업에 vim을 사용하면서 시행착오를 겪고 발전해나갈 수 있게 될 것이라고 판단했다. 그래서 잘 모르는 부분이라도 일단, 기초적인 사용법을 숙지하는 것에 초점을 두고 Ankilog를 작성해왔다.

 

그런데 해보니 역시 IT에 대한 기초가 없이 많이 부족한 자신과 마주치게 되었다. 간단한 텍스트 에디터의 사용법을 파악하는데도 이해하기 어려운 맥락이 많이 보이고, 원문 기술서들은 영어는 알아먹겠는데 그 내용이 전혀 이해가 되지 않는 이상한 현상을 자주 겪었다. 아마도 내 무지로 인하여 vim에 대해서 그 동안 올린 것들도 일부 틀린 것이 존재할 것이라고 생각한다.

 

그래서 원래, 계획은 플러그인이나 스크립트에 대해서도 공부를 할 생각이었지만 지금의 내 실력으로는 도저히 역부족으로 보여서 이제는 잠깐 접고 내공을 기르기 위하여 다른 공부를 하려고 한다. 오히려 다른 IT 공부를 하면서 지금까지 배운 vim을 적극 활용해서 개발도 해보고 프로그래밍도 공부하면서 시행착오를 겪어가면서 vim을 직접 사용하는 것에 중점을 두어야 할 시기라는 생각이다.

 

그리고 이제껏 공부했던 vimAnki를 하나로 모아서 아래에 첨부하니 필요한 분은 사용하시기 바란다. 



Anki 파일


아래는 그 동안 올렸던  vim의 Anki를 하나로 모아놓은 Anki 파일입니다. 참고하시기 바랍니다. 








탭 끼워넣기


작업을 하다보면 들여쓰기 때문에 행의 맨앞에 탭을 삽입해야할 경우가 많이 생긴다. 물론, 그럴 때마다 일일이 행의 처음으로 이동해서 편집 모드로 들어가 탭을 집어넣고 다시 나와서 작업을 해야 한다면 무척 번거로울 것이다.


이런 경우를 위해서 vim에서는 행 앞에 탭을 쉽게 삽입하거나 제거할 수 있게 만들어 놓았다


명령 모드 >>(오른쪽 꺽쇠 2회 누름)

 

현재 커서가 위치한 행의 맨 앞에 탭 하나를 삽입한다.


명령 모드 <<(왼쪽 꺽쇠 2회 누름)

 

현재 커서가 위치한 행의 맨 앞에 있는 탭 하나를 제거한다


위에 소개된 명령은 여러 개의 행에 동시에 적용할 수 있다.

 

명령 모드 [#]>> 

 

현재 커서 위치를 1행으로 해서 아래로 #행까지 행의 맨 앞에 탭 하나를 삽입한다


명령 모드 [#]<< 

 

현재 커서 위치를 1행으로 해서 아래로 #행까지 행의 맨 앞에 탭 하나를 제거한다



들여쓰기 자동정렬


소스코드의 들여쓰기가 잘못되었거나 잘못되었을 경우 이를 제대로 정렬할 수 있는 손쉬운 방법이 있다.

 

비주얼 모드로 들여쓰기를 정렬할 영역을 지정한 후 등호(=) 를 누르면 들여쓰기가 깔끔하게 정렬된다.

 

, 별도로 블록을 지정하지 않고 그냥 소스코드 전체의 들여쓰기를 정렬하려면 명령 모드에서 gg=G라고입력하면 된다.

 


자동완성 기능 사용하기


어떤 변수나 함수를 타이핑할 때 너무 복잡한 이름이거나 잘 모르는 이름일 경우에는 자동 완성 기능을 사용하여 손쉽게 이를 해결할 수 있다.

 

편집 모드 <Ctrl-p>


커서 위치에서부터 위로 자동 완성이 가능한 단어가 있는지 찾아서 제시함


편집 모드 <Ctrl-n>


커서 위치에서부터 아래로 자동 완성이 가능한 단어가 있는지 찾아서 제시함


자동완성 기능을 사용하는 모습은 다음과 같다. 



Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 



폴딩 기능 이용


폴딩 기능은 별로 구태여 볼 필요가 없는 부분을 접어서 보기 편하게 해 주는 기능으로 이렇게 사용한다.


접기(folding)

접고 싶은 부분을 비주얼 모드로 영역 지정한 후 zf 키를 누르면 해당 부분이 접어진다


펴기(unfolding)

접힌 부분에 커서를 위치시키고 zo 키를 눌러주면 접힌 부분이 펴진다


즉, 아래의 사진과 같이 지정된 영역을 접고 편다.




이를 응용해서 함수의 여는 중괄호 ‘{’ 위에 커서를 위치시키고 명령 모드에서 v]}zf 명령을 내리면 비주얼 모드로 진입하여(v) 함수의 코딩된 블록이 지정되어(]}) 접힌다(zf).


함수의 여는 중괄호 '{' 위에 커서를 위치시키고 v]}zf

비주얼 모드로 진입하여(v) 함수의 코딩이 이루어진 블록이 지정되어(]}) 접힌다(zf).




이 키가 다소 복잡하고 자주 사용하므로 아래와 같이 키 매핑을 해두는 것도 좋다. 


map <F1> v]}zf


※ 키 매핑은 앞서 포스팅한 이곳을 참조하면 된다



Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


064 폴딩 기능.apkg

vim에서 셸 명령 사용하기


vim으로 작업하다 보면 셸에서 어떤 명령을 실행해야 하는 경우가 종종 발생할 수 있다. 파일 리스트를 확인하거나 네트워크의 IP를 확인해야할 때도 있고 필요한 데이터를 만들거나 연산할 상황이 발생하는 등 다양한 상황이 발생하는 것이다


이런 경우 vim을 닫고 셸 명령을 실행하고 다시 vim을 실행하는 일련의 번거로움을 없애기 위하여 vim에서 바로 셸 명령을 실행하고 실행이 종료되면 vim으로 바로 복귀할 수 있게 하는 명령 형식이 있다.


, 아래와 같이 명령 라인에 느낌표를 앞에 붙이고 셸 명령을 입력하는 것이다.


명령 라인 :![셸 명령]


명령을 수행하기 위해 잠깐 vim을 빠져나왔다가 명령이 수행된 후 [Enter]를 눌러 다시 vim으로 돌아온다


가령, 다음과 같이 명령할 수 있다.


명령 라인 :!ls


vim을 빠져나가 현재 디렉터리의 파일 및 디렉터리의 리스트를 보여준다


실행 결과는 다음과 같다. 





셸에서 원하는 명령을 수행하고 다시 vim으로 돌아오려면 셸에서 [Enter] 키를 누르면 된다.



셸 명령의 결과로 화면에 출력되는 내용이 필요할 수 있다. 그 때는 다음과 같은 형식으로 명령한다.


명령 라인에 :r ![셸 명령]


셸 명령으로 수행된 결과 데이터를 현재 커서의 위치에 삽입 



명령 라인에 :r !ls


셸 명령 ls 의 결과로 나타난 파일 및 디렉터리 리스트를 현재 커서 위치에 삽입


참고로 명령라인 :r [파일명] 형식의 명령은 현재 커서의 위치에 해당 파일명의 파일에 기록된 내용을 삽입하기 위하여 사용한다. 그래서 test1.txt 파일을 수정하고 있는데, :r test2.txt 명령을 내리면 현재 커서의 위치에 test2.txt의 내용이 삽입된다



Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 



매크로란 무엇인가?


앞에서 배운 레지스터 중에서 우리가 임의로 사용할 수 있는 임시 저장소로 알파벳 레지스터에 대해서 배운 바 있다.

 

이 알파벳 레지스터에는 보통 데이터가 들어가지만 일련의 키 입력을 저장할 수도 있다.

 

이 때, 일련의 키 입력레지스터에 저장하고 이것을 다시 실행할 수 있도록 만드는 것vim매크로라고 한다.



매크로 기록 및 사용


매크로를 기록하고 사용하는 과정은 다음과 같다. 


1) 매크로 기록 시작 

q와 키 입력을 저장할 알파벳 레지스터에 해당하는 알파벳을 누르면 이후에 이루어지는 키 입력이 해당 알파벳 레지스터에 기록되기 시작한다


2) 키 입력

매크로로 지정할 키를 실제로 사용하면서 입력한다.


3) 매크로 기록 완료

원하는 키 입력을 마친 후 q를 누르면 매크로 기록이 완료된다.


4) 매크로 사용

명령 모드에서 @알파벳 레지스터에 해당하는 알파벳을 같이 누르면 레지스터에 기록된 매크로를 실행한다.



매크로 기록 및 사용 사례


그럼 실제 사용해보면서 매크로를 익혀보자. 


반복적으로 사용되지만 키 입력이 귀찮은 경우에 해당하는 일련의 키 입력을 매크로로 지정하는 것이 바람직할 것이다. 


소스코드를 작업하다 보면 들여쓰기를 해야하는 경우가 많다. 그 때마다 일일이 행의 처음으로 돌아가서 편집모드로 들어간 후 [Tab] 키를 누른 후 다시 명령 모드로 돌아오는 과정이 조금 귀찮았던 것 같다. 이것을 매크로로 만들어 보자


1) 매크로 기록 시작


알파벳 레지스터 중 a매크로를 기록한다.


일단은 명령 모드에서 qa 를 눌러 매크로 기록을 시작한다


다음의 사진과 같이 하단에 '기록 중 @a라는 표시가 나타난다.




2) 키 입력


다음과 같이 기록할 키 입력을 수행한다.

우선 커서가 행의 공백이 아닌 첫 글자에 위치하도록 캐럿(^) 키를 누른다.

 

편집 모드로 진입하기 위하여 i키를 누른다.

 

이제 [Tab]키를 눌러 탭을 삽입하고 [Esc] 키를 눌러 명령 모드로 돌아온다.


3) 매크로 기록 완료


q를 눌러 매크로 기록을 마친다.



4) 매크로 사용


명령 모드에서 @a 를 눌러 a 레지스터에 기록된 매크로를 사용해본다.


이 때, 행의 앞에 탭을 3개를 한꺼번에 삽입하고 싶으면 명령 모드에서 3@a 를 누르면 된다. 그러면 @a 3번 반복하여 실행하므로 탭이 3개가 삽입되는 효과가 나타난다.



Anki 파일


아래는 본 포스팅의 내용을 갈무리하기 위한 Anki 파일입니다. 참고하시기 바랍니다. 


062 매크로 사용.apkg


+ Recent posts