다중 화면으로 파일 내용 비교하기 


나에게 친구들의 이름과 국적을 기록한 파일이 있다. 그런데 친구들이 검증해보겠다고 하나씩 가져가더니 각자 이를 수정해서 가져왔다. 내가 가지고 있던 파일은 test1.txt 였는데 친구들이 파일을 수정했으므로 각자 test2.txttest3.txt로 파일을 수정했다. 이 파일에서 무엇이 수정된 것이지 눈이 빠지도록 확인해봐야 할 것 같다.

 

vim은 무척 재미있는 기능을 제공하고 있는데 그것은 파일간의 내용을 비교하는 기능이다.

 

이를 실행하려면 다음과 같이 vim으로 해당 파일들을 열 때 -d 옵션을 추가하면 된다


$ vim -d test1.txt test2.txt test3.txt


이와 같이 하면 아래와 같이 수직창에 비교할 파일이 나란히 비교되면서 나타난다.


 


위의 화면을 봐서 알겠지만 서로 같은 행의 문자열들만 비교하고 있다. 다른 문자열과 다른 점이 있는 문자열들은 모두 빨간색 음영으로 표시되어 있고 개행문자도 없이 공백인 행들은 연녹색 음영으로 처리되어 있다.

 

단순히 동일한 행끼리만 문자열을 비교해주는 기능이므로 별로 쓸만하지 않다고 생각할 수도 있지만 이 기능이 매력적인 것은 이 비교를 처음 한번만 해주는 것이 아니라 파일을 수정하거나 고치는 작업 중에도 계속 비교를 해주어 작업에 드는 품을 상당히 줄여주기 때문에 알아두면 요긴하게 써먹을 수 있다. 


사례를 들어보자. 위의 화면에서 3번째 행은 test2.txt 파일의 Jenny가 다른 두개의 파일에 있는 Jane과 다르기 때문에 빨간 음영으로 표시되어 있다. 이를 수정해서 다음과 같이 JennyJane으로 수정해보자. tset1.txt 파일과 test2.txt 파일의 빨간 음영이 사라지는 것을 확인할 수 있다. 이제 해당 행은 서로 다른 세개의 파일에서 동일하도록 완전히 수정된 것이다. 



Anki 파일


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


056 다중 화면으로 파일 내용 비교하기(2개 카드).apkg


vim에서 여러 개의 파일 열고 파일 버퍼 확인하기


프로그래밍 소스 코드는 보통 여러 개의 파일로 이루어져 있다. 따라서 동시에 여러 개의 파일을 열고 작업해야 하는 경우가 비일비재하다. 따라서 vim에서도 여러 개의 소스 코드 파일을 다룰 수 있는 방법들이 준비되어 있다.

 

우선, vim에서 여러 개의 파일을 여는 방법부터 알아볼 필요가 있다. 하나는 다음과 같이 명령라인에서 순차적으로 파일을 하나씩 여는 것이다


:e test1.txt test1.txt 파일이 열린다.

:e test2.txt test2.txt 파일이 열린다.

:e test3.txt test3.txt 파일이 열린다.

※ 명령 라인에 :e [파일명] 형식으로 파일을 불러올 경우 파일이 있으면 해당 파일을 불러오고 해당 파일이 없으면 새로운 파일이 임시로 만들어진다.


두 번째 방법은 vim을 실행하면서 한꺼번에 여는 것이다


$ vim test1.txt test2.txt test3.txt


여러 개의 파일을 열었지만 현재 화면에 보이는 파일은 하나밖에 없을 것이다이러니 여러 개의 파일을 열었다고는 하지만 전혀 실감이 나지 않는다. 여러 개의 파일이 열렸다는 것을 어떻게 확인할 수 있을까?

 

vim은 열린 파일들을 파일 버퍼에 임시로 저장하여 사용한다. 따라서 다른 파일들이 파일 버퍼에 들어있는지를 확인하면 여러 개의 파일이 열려있는 것이다. 이를 확인하려면 명령 라인에 :buffers 또는 :ls 또는 :files 라고 명령어를 입력하여 파일 버퍼(buffer)를 확인하면 다음과 같이 결과가 출력된다


:buffers 또는 :ls 또는 :files

1 %a + "test.1.txt"  1

2      "test.2.txt"  0

3      "test.3.txt"  0


순서대로 1번 버퍼test1.txt 파일이 있고 2번 버퍼test2.txt3번 버퍼test3.txt 파일이 들어있는 것이 확인된다.


Anki 파일


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



0002_웹의 구조와 HTML의 역할



간략한 웹의 구조는 다음과 같다.




웹페이지 관련 파일들을 보유하고 있는 웹서버는 인터넷에 연결된 컴퓨터로 웹브라우저의 요청에 따라 파일을 제공한다.


웹브라우저는 웹서버에 HTML 페이지를 요청하고 요청에 대한 응답을 받아 화면에 보여준다.


이러한 웹의 구조하에서 HTML의 역할은 웹페이지의 구조와 내용을 브라우저에게 알려주는 것이다.



Anki로 공부하시려면 아래의 파일을 다운받아 공부하시면 됩니다.


Anki 학습 파일 : 0002_웹의 구조와 HTML의 역할.apkg







문서는 Anki 2.0 유저 매뉴얼을 번역한 문서입니다.


기본적으로 구글 번역을 통해서 초벌을 번역하고 이를 수정하는 방식으로 번역했습니다. 


또한, 본문에 충실한 직역보다는 매뉴얼을 숙지하기 쉽도록 의역 위주로 번역하였습니다.


 


Anki 매뉴얼 전체 개요 페이지 가기



 Managing Files and Your Collection(파일 및 컬렉션 관리)

 

 

DropBox and File Syncing(DropBox 및 파일 동기화)

 

 

Anki 폴더에 타사의 동기화 서비스를 직접 연결하여 사용하는 것을 추천하지 않는다. 

 

왜냐하면 Anki 폴더를 사용 중일 때 파일을 동기화 하면 데이터베이스가 손상 될 수 있기 때문이다.

 

 

단지 미디어를 동기화하려는 경우 외부 폴더DropBox와 같은 서비스에 연결할 수 있다.

 

자세한 정보는 http://www.dropboxwiki.com/tips-and-tricks/sync-other-folders를 참조하길 바란다.


 

그래도 컬렉션을 동기화 상태로 유지하고 싶다면 동기화 된 폴더에서 다른 로컬 폴더로 파일을 복사하고 나서 Anki를 시작한 다음 Anki가 닫힐 때 파일을 다시 복사하는 스크립트를 만들 것을 강력하게 추천한다.

 

이렇게 하면 파일이 열려있는 동안 절대 동기화되지 않는다.

 

 

 

 

 

Network Filesystems(네트워크 파일 시스템)

 

 

네트워크 파일 시스템으로 인해 데이터베이스가 손상 될 수 있다.

 

그러므로 네트워크 파일 시스템보다는 로컬 하드 디스크Anki의 파일을 저장하는 것을 강력하게 추천한다.

 

네트워크 파일 시스템이 유일한 옵션이라면 메인 메뉴에서 도구 데이터베이스 검사를 정기적으로 사용하여 손상을 탐지하는 것이 좋다.

 



Anki 매뉴얼 전체 개요 페이지 가기



문서는 Anki 2.0 유저 매뉴얼을 번역한 문서입니다.


기본적으로 구글 번역을 통해서 초벌을 번역하고 이를 수정하는 방식으로 번역했습니다. 


또한, 본문에 충실한 직역보다는 매뉴얼을 숙지하기 쉽도록 의역 위주로 번역하였습니다.


 



Anki 매뉴얼 전체 개요 페이지 가기



 Managing Files and Your Collection(파일 및 컬렉션 관리)

 

 

Startup Options(시작 옵션)

 

 

 

1. Shift를 누른 책 Anki 시작

 

 

사용하던 컴퓨터에서 Anki에 돌이킬 수 없는 치명적인 변경을 하고 나서 후회할 수 있다.

 

다행히 다른 컴퓨터에는 손상되지 않은 사본이 있다면 이 사본을 쓰면 되지만 문제가 있다.

 

보통 Anki는 자동으로 동기화가 이루어지므로 이 경우 가장 최근에 이루어진 치명적인 변경 사항이 다른 컴퓨터의 사본에 적용되게 된다.

 

이런 경우에는 Anki를 동기화 없이 시작해야 한다.

 

또, 이런 경우도 있다.

 

Anki에 문제가 발생했는데 문제의 원인이 확인되지 않았다.

 

추가 기능(add-on)에서 문제가 발생한 것으로 의심된다.

 

이럴 때엔느 어떤 추가 기능(add-on)에서 문제가 발생했는지 확인해보고 싶어서 일부 추가 기능(add-on)들을 일시적으로나마 비활성화 하고 싶다.

 

이렇게 동기화 없이 Anki를 시작하거나 추가기능들을 잠시 비활성화하는 작업을 하고 싶다면 Shift 키를 누른 채로 Anki를 시작하면 된다.

 

 

 

2. 사용자 지정 폴더

 

 

시작할 때 사용자 지정 폴더 위치를 지정할 수 있다.

 

이것은 주로 휴대용 설치를 위한 고급 기능이며 대부분의 경우 기본 위치를 사용하는 것을 추천한다.

 

사용자 지정 폴더를 지정하는 구문은 다음과 같다.

 

(이 구문을 Anki 실행폴더에서 실행시키면 된다.  /path/to/anki/folder는 새로 지정할 폴더의 경로를 의미한다.)

 

   anki -b /path/to/anki/folder

 

/path/to/anki/folder 경로를 "C:\AnkiDataFolder"로 지정하여 실행해 보자.

 

C:\Program Files (x86)\Anki로 들어가서 anki -b "c:\AnkiDataFolder" 를 타이핑하고 엔터를 친다.

 

 

 

그러면 언어를 설정하는 창이 뜨고 거기에서 한국어를 선택하면 다음처럼 기본 카드뭉치만 있는 Anki가 실행된다.

 

 

 

 

기존에 사용하던 개인 설정과는 별도의 완전히 새로운 Anki가 새로 시작된 것을 확인할 수 있다.

 

사용자 지정 폴더로 지정된 곳을 확인해보면 C 드라이브에 AnkiDataFolder가 새로 생긴 것을 확인할 수 있다.

 

 

이후에는 동일한 명령어를 다시 사용하면 새로운 폴더가 다시 생성되지는 않고 이미 생성된 기존 계정이 계속 다시 열린다.

 

사용자 지정 폴더를 대상으로 Anki를 열면 별도로 설정이 가능하고 별도의 프로필을 다시 만들 수 있으므로 "Temp1", "Temp2"의 2개의 사용자 프로필을 만들고 다시 C:\Program Files (x86)\Anki로 들어가서 anki -b "c:\AnkiDataFolder" 를 타이핑하고 엔터를 치면 다음과 같이 어떤 프로필로 들어갈지 물어보는 프로필 창이 열린다.

 

 

 

 

프로필이 여러 개인 경우 -p <name>을 전달하여 특정 프로필을 바로 로드할 수 있다.

 

가령 지금과 같은 경우라면 다시 C:\Program Files (x86)\Anki로 들어가서 anki -b "c:\AnkiDataFolder" -p Temp2 를 타이핑하고 엔터를 치면 다음과 Temp2 프로필로 들어간다.

 

 

 

 

인터페이스 언어를 변경하려면 -l <iso 639-1 language code>를 사용하면 된다.

 

가령, 일본어의 코드는 ja이므로 다시 C:\Program Files (x86)\Anki로 들어가서 anki -b "c:\AnkiDataFolder" -l ja 를 타이핑하고 엔터를 치면 프로필을 고를 수 있는 프로필 창이 일본어로 열리고 Temp1 프로필로 들어가면 일본어로 된 Anki가 열린다.

 

 

 

 

3. 사용자 지정 폴더 바로가기 이용

 

 

이제까지 매번 C:\Program Files (x86)\Anki 폴더로 들어가서 명령어를 실행해야 했다.

 

하지만 Anki에서 기본으로 제공하는 폴더가 아닌 사용자가 지정한 폴더를 상시적으로 사용하고 싶다면 Anki에 대한 바로 가기를 수정하면 된다.

 

Windows에서는 Anki의 바로 가기를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 바로 가기 탭을 선택하고 프로그램 경로 다음에 "-b \path\to\data\folder"를 추가하라.

 

\path\to\data\folder는 지금과 같은 경우 "c:\AnkiDataFolder"이므로 다음과 같이 수정하면 된다.

 

  "C:\Program Files\Anki\anki.exe" -b "C:\AnkiDataFolder"

 

 

 

여러 개의 바로가기를 만들어서 쓰고 싶은 것을 자유롭게 써도 된다.

 

가령, -l ja 옵션을 이용하면 일본어로 접속하고 싶을 때 간단하게 일본어 설정을 할 필요 없이 접속이 가능하다.

 

 

 

< 주 의 >

 

Windows에서는 슬래시(/)가 아닌 슬래시(\)를 사용해야 한다.

 

 

 

Mac에서는 Anki 바로가기 아이콘을 클릭 할 때 일어나는 행위를 쉽게 변경할 방법이 없지만 터미널에서 사용자 지정 기본 폴더로 Anki를 시작하는 것이 가능하다.

 

 

     open /Applications/Anki.app --args -b ~/myankifolder




Anki 매뉴얼 전체 개요 페이지 가기



문서는 Anki 2.0 유저 매뉴얼을 번역한 문서입니다.


기본적으로 구글 번역을 통해서 초벌을 번역하고 이를 수정하는 방식으로 번역했습니다. 


또한, 본문에 충실한 직역보다는 매뉴얼을 숙지하기 쉽도록 의역 위주로 번역하였습니다.


 


Anki 매뉴얼 전체 개요 페이지 가기



 Managing Files and Your Collection(파일 및 컬렉션 관리)

 

 

Checking Your Collection(컬렉션 검사하기)

 

 

컬렉션 파일에 어떤 문제가 있는지 자주 검사하는 것은 좋은 습관이다.

 

메인 메뉴에서 도구 데이터베이스 검사를 클릭하면 간단하게 이 작업을 수행할 수 있다.

 

데이터베이스 검사를 클릭하면 Anki는 파일이 손상되었는지 확인하고 일부 내부 구조를 다시 구축하며 파일을 최적화한다.

 

 

 

 

데이터베이스를 검사를 통하여 태그 목록도 다시 구축된다.

 

개별 카드뭉치나 카드를 삭제할 경우 그 때마다 태그 목록을 일일이 갱신하는 것이 비효율적이기 때문에 Anki는 이러한 태그들을 그대로 내버려 둔다. 

 

더 이상 사용되지 않는 오래된 태그를 제거하고 싶으면 데이터베이스 검사를 하면 된다.

 

 

여기서 주의할 점은 수동으로 데이터베이스 검사를 하는 것과 자동 최적화가 다르다는 점이다.

 

Anki2주에 한 번 자동으로 컬렉션을 최적화한다.

 

이 자동 최적화는 컬렉션이 그 역할을 제대로 수행할 수 있게끔 보장하는 것을 목적으로 할 뿐 태그를 재구축하거나 오류를 검사하지 않는다는 점을 주의해야 한다.

 

 

 

 

File Location(파일 위치)

 

Windows에서 최신 버전의 AnkiAnki 관련 파일을 AppData 폴더에 저장한다.

 

파일 관리자를 열고 위치 입력 창에 %APPDATA%\Anki2를 입력하여 이 폴더에 액세스 할 수 있다.

 

이전 버전의 AnkiAnki 파일을 Documents 폴더에 있는 Anki라고 하는 폴더에 저장했다.

 

 

Mac에서 최신 버전의 Anki는 모든 파일을 ~/Library/Application Support/Anki2 폴더에 저장한다.

 

라이브러리 폴더는 기본적으로 숨겨져 있지만 Option 키를 누른 상태에서 파인더 메뉴바의 이동(Go)’을 클릭하면 라이브러리항목이 활성화 되고 이동할 수 있게 된다.

 

Anki 버전이 오래된 것이라면 Anki 파일은 Documents/Anki 폴더에 있을 것이다.

 

 

Linux에서 최신 버전의 Anki~/.local/share/Anki2에 혹은, 사용자 정의 데이터 경로를 설정 한 경우 $XDG_DATA_HOME/Anki2에 데이터를 저장한다.

 

오래된 버전의 Anki라면 ~/Documents/Anki 또는 ~/Anki에 파일을 저장한다.

 

 

Anki 폴더를 살펴보면, 프로그램 및 프로필 수준의 기본 설정은 prefs.db라는 파일에 저장된다.

 

 

또한 각 프로필 별로 별도의 폴더가 있다.

 

 

 

이 중 초보 사용자 프로필 폴더에 들어가보면 다음과 같은 항목들이 나타난다. 

 

 

 

- 노트들, 카드뭉치들, 카드들 등등은 collection.anki2 파일에 있다.

 

- 오디오 및 이미지 등 미디어 파일은 collection.media 폴더에 있다.

 

- 백업 폴더

 

- 그 외 일부 시스템 파일

 

 

< 경 고 >

 

Anki가 열려있는 동안 컬렉션을 복사하거나 옮기면 컬렉션이 손상될 수 있으므로 절대 안된다.

 

폴더의 다른 파일도 이동하거나 수정해서는 안된다.




Anki 매뉴얼 전체 개요 페이지 가기



+ Recent posts