열려진 모든 파일에서 찾기 (Vim)

:bufdo 명령

:bufdo는 버퍼 리스트의 모든 버퍼에 대해서 동일한 명령을 수행하는 기능으로, 찾기/바꾸기나 그 외에 여러 파일에 대해서 한꺼번에 적용될 수 있는 명령을 수행할 수 있다. 참고로 문자열이 아닌 일반 명령 시퀀스가 뒤에 오게 된다. 예를 들어 vim에서 열어본 모든 파일에 대해서 ‘sample’ 이라는 단어를 ‘fixed’라고 변경하려면, 모든 파일을 일일이 옮겨다닐 필요없이 :bufdo %s/sample/fixed/g를 입력하면 된다.

이와 비슷하게 :windo 명령은 모든 윈도우에 대해서 적용되며, 모든 탭에 대해서 적용할 수 있는 :tabdo 명령도 있다. (참고로 :bufdo는 버퍼 리스트 상의 모든 버퍼에 대해 적용된다. :windo는 버퍼 중에서 창을 통해 표시되는 버퍼만 해당한다.)

:bufdo 명령을 사용하면 모든 버퍼에서 특정 패턴을 검색할 수 있을 것 같다. 검색을 위한 명령을 살펴보자.

열려진 모든 파일에서 찾기 (Vim) 더보기

컬러스킴을 전환하기

vim에서 컬러 스킴을 변경하고 싶을 때에 :colorscheme 명령을 사용한다. (줄여서 :color로 쓸 수 있다.) 이 명령으로 컬러 스킴을 변경할 때에는 테마 이름을 알아야 하는데, 사실 몰라도 상관없다. :color<space> 한 후에 탭 키를 누르면 테마 이름은 자동완성되기 때문이다. 근데 이것보다도 키 하나만 눌러서 다른 테마로 적용되는 것을 보면서 전환하도록 하는 것이 더 편리할 것 같다. 이 기능을 vim 안에서 어떻게 만들면 좋을지 알아보자.

컬러스킴을 전환하기 더보기

IJulia 설치방법

IJulia는 Jupyter용 Julia 커널로 Jupyter 노트북에서 julia를 사용할 수 있게 해준다. 이를 사용하려면 시스템에 당연히 줄리아가 설치되어 있어야 하고, 파이썬 및 jupyter도 설치돼 있어야 한다. 여기서는 Julia를 업그레이드(재설치)하면서 IJulia를 어떻게 다시 설치했는지 그 과정을 기록한다.

IJulia 설치방법 더보기

파이썬은 인터프리터언어입니까?

최근에 많이 보게 되는 질문 중 하나가 ‘파이썬은 인터프리터 언어입니까? 컴파일언어입니까?’라는 것이다. 개인적으로 이 질문은 사람을 참 난감하게 하는데, 어떻게 답해야하나에 앞서 아직까지도 이 개념을 이렇게 잘못 가르치는 교재 혹은 과정이 대부분이라는 점 때문이다. 그럼 인터프리터 언어와 컴파일 언어가 무엇인지 알아보고, 과연 파이썬은 인터프리터 언어인지 생각해보자.

참고로, 보통 나는 이 질문에 ‘반만 맞다’고 말하거나 더 이상의 설명이 귀찮은 경우에는 ‘통상 인터프리터 언어라고 합니다.’라고 답한다.

파이썬은 인터프리터언어입니까? 더보기

한글의 음소분리 문제

한글 문자열의 초/중/종성을 분리하는 예제를 포스팅한 적이 있는데, 이 때는 미처 알지 못했지만, 중요하게 놓친 문제가 있다. 그러니까 초/중/종성에 해당하는 자모와 각각의 낱자가 다른 글자라는 점이다.

예를 들어 ‘한'(U+D55C)자를 보자. 이 글자는 ‘ㅎ’, ‘ㅏ’, ‘ㄴ’ 의 세가지 자모로 분리된다. 이 때 ‘ㅎ’이 초성일 때와 종성일 때에는 같은 ‘ㅎ’으로 보이기는 해도, 같은 코드가 아니다. (그리고 지금 ‘ㅎ’으로 낱자로 쓰고 있는 이 글자 역시 같은 코드가 아니다.

‘ㅎ’을 표현하는 방식에는 다음 세 가지 방식이 있다.

  1. 낱자로서의 ‘ㅎ’ (U+314E)
  2. 초성 자모로서 ‘ㅎ’ (U+1112)
  3. 종성 자모로서 ‘ㅎ’ (U+11C2)

이는 유니코드에서는 완성형과 조합형 한글을 모두 지원하기 때문이다. ‘가’에서부터 ‘힣’에 이르는 자모로 조합가능한 모든 한글글자는 Hangul Syllables 블럭에 정의되어 있다. 그리고 이러한 Syllables를 조합하는데 사용되는 자모들은 모두 Hangul Jamo에 정의된다. 낱자로서의 자모는 Hangul Compatibility Jamo 에 정의되어 있다. 기존의 초성 구하기 코드에서 구하는 답은 자모 코드에 해당한다.

이 자모 코드는 기본적으로 서로 결합하여 완성된 글자(Hangul Syllables)를 구성하는데 쓰인다. 따라서 자모 문자의 코드값으로부터 문자를 얻어서 출력했을 때에는 각 자모 낱자의 출력결과와 구분할 수 없기는 하나 정확한 답이 아닌 것이다.

한글의 음소분리 문제 더보기