콘텐츠로 건너뛰기

vim에서 긴 행을 자동 줄바꿈하는 올바른 설정

  • 기준

세상에는 메모장을 위시로 하여 수 없이 많은 GUI 기반 텍스트 편집기가 있습니다. 그 중 가장 간단한 텍스트 편집기인 윈도 메모장에서도 “자동 줄 바꿈”이라는 옵션은 존재합니다. 메모장에도 있을 정도의 기능이면 줄바꿈 없이 긴 문장을 화면에서 읽으려고 할 때, 가장 필요한 기능이라고도 할 수 있겠습니다. 오늘은 vim에서 긴 행은 어떻게 처리되는지, 그리고 이런 ‘자동줄바꿈’과 관련된 옵션은 어떤 것들이 있고 어떻게 설정하면 좋을지에 대해 생각해 보도록 하겠습니다.

더 보기 »vim에서 긴 행을 자동 줄바꿈하는 올바른 설정

토체프 벽돌돼서 A/S 받은 후기

  • 기준

사무실에서 사용하는 키보드가 토체프 무선 저소음 적축 모델입니다. 블루투스 연결을 지원하는 풀배열 기계식 키보드 자체가 선택의 폭이 그리 넓은 편이 아닌데, 그 중에서 토체프가 가장 예쁜 것 같아서 사용하고 있습니다. 주로 무선으로만 사용하고 한 달에 한 번 정도만 잠시 충전을 위해 유선으로 연결하는데, 엊그제가 때마침 충전해야 할 시기라 연결했더랬지요. 그랬더니 새로운 펌웨어가 나왔다면서 펌웨어를 업데이트하라길래 아무 생각없이 업데이트하였는데… 때마침 그 때 제우스 엔진도 같이 업데이트 되면서 프로그램이 종료되었고 펌웨어 업데이트에 실패했습니다.

업데이트 하겠다고 확인을 클릭한 후에 잠시 전화기를 보다가 다시 PC 화면을 보니, 제우스 엔진 프로그램이 다시 시작되더니 조금 있다, 윈도 작업 표시줄에 USB 장치를 인식하는데 실패했다는 메시지가 뜨더군요. 읭? 뭐지? 하고 있는데 갑자기 키보드인가? 하는 생각이 들었습니다. 키보드의 부트 로더가 손상됐는지 아예 인식이 안되더군요. 인식이 안되면 초기화나 펌웨어 재설치가 불가능한 듯 하여 고객 센터에 전화를 하였습니다. 증상을 말하니 센터에 입고 시켜서 확인을 해봐야할 것 같다고 하더군요. 그래서 그날로 바로 우체국 택배로 제품을 고객센터로 보냈습니다.

더 보기 »토체프 벽돌돼서 A/S 받은 후기

vim에서 작성중인 코드를 바로 실행하기

  • 기준

vim에서 파이썬이나 자바스크립트 코드를 작성하면서 실행 결과를 보고 싶을 때에는 보통 :!python % 명령을 실행해서 현재 파일을 실행하는 쉘로 잠시 넘어가서 결과를 볼 수 있습니다. 이 방법은 쉽게 실행해볼 수 있다는 장점이 있지만, 실행되는 동안 vim 화면을 볼 수 없고, 실행을 마치고 vim으로 돌아가면 출력된 결과를 다시 확인하기가 어렵다는 것입니다. VSCode 처럼 별도의 창에서 소스를 실행해보고 그 결과를 계속 확인할 수 있으면 참 좋을 것 같습니다. 이런 일을 도와주는 플러그인이 있을 것 같은데, 그냥 직접 만들어보기로 했습니다. 참고로 vim9 스크립트로 작성하였습니다.

더 보기 »vim에서 작성중인 코드를 바로 실행하기

AutoHotkey 한영 상태 감지하기

  • 기준

오토핫키에서 키보드 매크로(hot string)는 키보드의 한/영 상태를 고려하지 않고 작동하기 때문에, 한/영 상태에 따라서 다른 핫스트링을 정의해야 하는 경우가 있다. 이를 위한 함수 코드가 여러 커뮤니티나 블로그를 통해서 공유되고 있는 걸 줏어서 소개한다. (물론 구글에서 검색해보면 이 글보다는 다른 글들이 먼저 보이니까, 이 글을 보시는 분들은 아마 보셨던 코드일 것이다.)

원리는 대충 윈도 API를 통해 어떤 응용 프로그램 내의 컨트롤에 ‘메시지’를 보내어 원격으로 어떤 기능을 실행할 수 있게 하는 것이 기본적인 아이디어이다. 현재 활성화된 창에서 기본 IME의 상태창을 열도록, 응용 프로그램의 기본 IME 창에게 메시지를 보낸다. 만약 현재 한글 IME가 선택된 경우에는, 이 요청을 처리하지 못하고 에러가 반환되기 때문에 이 메시지의 결과가 실패라면 한글로 선택되어 있다고 상정할 수 있는 것이다.

더 보기 »AutoHotkey 한영 상태 감지하기

vim9 스크립트에서 달라진 점

  • 기준

요 며칠전 vim 9.0 정식 버전이 사전 예고도 없이 갑작스럽게 릴리즈되었습니다. 뭐 예전부터 따로 베타 릴리즈 같은 걸 했던 코드는 아니어서… 오랜만의 메이저 릴리즈라 그런지 여기 저기서 많은 소식이 들려오고 있습니다. 개인적으로는 vim 8.0에서 새로운 기능은 더 많이 도입됐던 것 같은데, 이번에는 vimscript의 개선이라는 정말 거창한 주제 하나로 메이저 업데이트를 시행해서인지 주변에 vim을 쓴다는 사람들은 다들 관심을 보이는 것 같습니다. 사실, vim 8.2를 유지하던 시점에서도 vim의 새로운 스크립트 처리 관련 패치는 꾸준하게 이뤄지고 있었습니다. 즉 소스를 계속 받아서 빌드해본 사람이라면 오히려 9.0 릴리즈가 그렇게 새로운 것인가… 하고 약간 어리둥절해지는 그런 기분이 듭니다.

vim 8.0 이전부터 vimscript의 성능 개선에 대한 요구는 굉장히 많았습니다. vim 8.0 에 대거 추가된 많은 기능들은 사실, 사용자들로부터 투표를 받아서 채택한 기능들입니다. 이 때에도 vim script의 성능 개선 요구는 굉장히 많았지만, 그러한 니즈가 Bram 자신에게도 있었고, 아마도 그는 단순한 성능 개선 이상의 무엇인가를 원했던 것 같습니다. 그래서 다른 스크립트 언어의 런타임을 내장하면서 기존 vim script를 다른 언어로 컴파일하는 Neovim 과 같은 전략을 채택하는 대신, vim9script 라는 새로운 문법의 스크립트를 도입하는 것을 선택했습니다.

더 보기 »vim9 스크립트에서 달라진 점

AutoHotkey – 한영키와 CapsLock 키를 하나로 사용하기

  • 기준

최근 버전의 MacOS는 CapsLock 키와 한/영키를 하나의 키로 사용한다. 짧게 한 번 누르면 한/영 전환을 하고 약간 길게 (약 0.2~0.3초)가량 누르고 있으면 CapsLock으로 작동한다. 이를 윈도에서 흉내내기 위해서 AutoHotkey를 사용할 수 있고, 이와 관련된 스크립트가 소개된 것들이 있는데 아주 부드럽게 작동하지는 않더라. 이는 CapsLock 키는 눌렸다 떼는 시점이 아니라 누르는 시점에 대문자 고정으로 작동하기 때문에, 한/영 전환을 하려는 시점에 CapsLock으로 작동하기가 일쑤이다. 그래서 반대로, 한/영 키를 누르고 있으면 CapsLock 키처럼 작동하도록 했더니 특별히 이상하게 작동하지 않고 어느 정도 기대하는 대로 작동하는 것 같다.

더 보기 »AutoHotkey – 한영키와 CapsLock 키를 하나로 사용하기

ZMQ 파이프 만들기

ZMQ 프록시등에서 캡쳐된 데이터를 확인하려고 할 때와 같이 간단하게 1:1로 데이터를 주고 받을 수 있도록 두 개의 PAIR 소켓을 사용하여 파이프를 만들어 활용할 수 있다. 다른 소켓의 구성과 무관하게 스레드간 대화는 inproc 프로토콜을 사용해서 짝지은 소켓을 사용하여 만들 수 있다.

더 보기 »ZMQ 파이프 만들기

자동완성 커스텀하기 (vim)

  • 기준

사실 vim은 별다른 설정이 없어도 입력모드에서 <C-X> 로 시작하는 몇 가지 키 시퀀스를 누르면 현재 버퍼 혹은 열려 있는 버퍼에서 단어, 라인 등의 내용을 자동으로 완성하는 기능을 제공한다. 그 외에도 ctags 를 사용하여 코드에서 추출한 키워드와 태그를 자동완성할 수도 있다. 그 외에 이제까지 입력한 적이 없는 내용에 대해서도 몇 가지 자동완성과 관련된 옵션을 설정하면 입력 모드에서 자동 완성을 확장할 수 있다. 'completefunc' , 'omnifunc' 같은 옵션을 설정하면 커스텀 자동 완성을 사용할 수 있다. 이 옵션을 설정할 때에는 별도의 사용자 정의… 더 보기 »자동완성 커스텀하기 (vim)

페이지 1 2

비율에 대한 검정

지난 시간에 모평균에 대한 검정을 수행했다. 평균에 대한 검정은 표본 조사를 통해서 모집단의 평균이 특정한 값인지 혹은 특정 기준보다 큰지/작은지에 대해 판단하는 검정이었다. 이번 시간에는 모비율에 대한 검정 방법을 알아보도록 하자. 모비율에 대한 분포는 이항분포와 관련이 있다. 이항 분포에서도 표본이 충분히 크면 이행분포가 정규 분포에 근사한다. 이 때 이항 분포의 평균은 p 이고, 분산은 p(1 – p)/n 인 정규 분포를 따른다. 평균에 대한 검정이 정규 분포에 기초한 것이었음을 생각해보면, 모비율 검정에서도 검정 통계량은 똑같은 공식을 사용한다. 검정 통계량 = {표본평균과… 더 보기 »비율에 대한 검정

모평균에 대한 가설 검정

표본의 통계량으로부터 모평균을 추정하는 것과 같은 원리를 사용하여, 모평균에 대한 가설을 검정할 수 있다. 예를 들어 “어떤 공장에서 생상한 나사못의 지름은 8mm이다.”라는 가설이 있을 때 표본 조사를 통해 이 가설이 맞는지를 알아보는 것은 모평균에 대한 검정이다. 평균에 대한 가설의 검정은 표본으로부터 얻은 통계량으로 모수를 추정하고, 그 추정치가 가설에서 말하는 값에 부합할 확률이 어느 수준인지를 판단하는 것이므로, 모평균의 추정과 사실 그 원리는 동일하다. 대신에 통계학에서는 가설을 설정하고 이를 검정하는 방법을 규격화하여 사용한다.

검정은 다음과 같은 순서로 이루어진다. 우선 어떤 모수의 값이 얼마인지에 대한 가설과 유의수준을 설정한다. 유의 수준이란 간단히 말해서 검정의 결론이 잘못될 확률이다. 그리고 모집단에 대한 표본평균을 확률 변수로 할 때, 이 확률변수의 분포를 구한다. 그런 다음 실제 표본을 조사하여 표본 평균을 계산한다. 계산된 표본 평균이 평균의 확률 분포에 따라 나타날 수 있는 확률을 구한다. 만약 표본 평균이 나타날 확률이 유의수준보다 낮다면, “본래의 가설이 맞다고 가정했을 때, 표본 조사의 결과가 그러한 가정에서는 나타나기 힘든 수치이므로 이 가설을 기각한다.”는 결론을 내릴 수 있다.

더 보기 »모평균에 대한 가설 검정