분류 전체보기 594

Learn Vimscript The Hard Way - 22: Comparision

Comparisons 앞 장에서 배운 vimscript의 조건절은 비교가 없으면 그다지 유용하지 않을 것이다. :if 10 > 1 : echom "foo" :endif:if "foo" == "bar" : echom "one" :elseif "foo" == "foo" : echom "two" :endif위에서 본 예시처럼 타 프로그램이 언어와 동일하게 비교를 사용 가능하다. 몇 가지 특이한 점들이 아래에서 설명될 예정 Case Sensitivity 다음을 실행시켜보자. :set noignorecase :if "foo" == "FOO" : echom "vim is case insensitive" :elseif "foo" == "foo" : echom "vim is case sensitive" :endif당연..

tools/vim 2020.03.28

Learn Vimscript The Hard Way - 20: Conditional

Conditional Vimscript에서는 if문을 통해 조건절을 사용한다. Multiple-Line Statements Vimscript에서 한 줄로 코드를 처리하기 힘든 경우에는 여러 줄 로 쓸 수도 있지만, pipe character (|)를 사용할 수도 있다. :echom "foo" | echom "bar"책의 나머지 부분에서 예시 코드를 실행할 때 newline을 사용하기 싫은 경우 pipeline을 사용해서 작성이 가능하다. Basic If :if 1 : echom "ONE" :endifinteger 1을 true로 인식하여 ONE이 반환된다. :if 0 : echom "ONE" :endif0도 대부분의 프로그래밍 언어와 비슷하게 false로 인식. 특이한 점은 string을 true로 인식..

tools/vim 2020.03.27

Learn Vimscript The Hard Way - 20. Variable Scoping

Variable Scoping 전 장 19. Variable에서 본 것처럼 Vimscript의 변수는 Python이나 Ruby 같은 동적 타입 언어와 거의 흡사하게 동작한다. 하지만 vimscript의 scoping은 기대와 조금 다르게 동작한다. :let b:hello = "world" :echo b:hello위 명령어를 실행해보면 정상적으로 world가 반환된다. 이제 다른 버퍼를 열어서 (:tabnew나 :new) 다시 echo 명령어를 실행해보자. :new :echo b:hello정의되지 않은 변수라는 에러가 반환된다. E121: Undefined variable: b:hellob: prefix를 변수와 함께 사용하면 현재 버퍼에서만 local va Variable로 정의된다. 다른 scope들도..

tools/vim 2020.03.25

Learn vimscript the hard way - 19장. Variables

Variables :let foo = "bar" :echo foo :let foo = 42 :echo 42vimscript는 동적 타입 언어라는 것을 볼 수 있다. Options as variable special syntax로 option을 set 할 수 있다. variable 앞에 & 기호를 써서 변수가 아니라 option이라고 명시해 줄 수 있다. :set textwidth=80 :echo &textwidthboolean 옵션도 마찬가지. 1과 0이 반환되는 것을 볼 수 있다 :set nowrap :echo &wrap " display 0 :set wrap :echo &wrap " display 1위에서 변수를 지정하는 let 명령어를 사용해서도 option을 변경할 수 있다. :let &textw..

tools/vim 2020.03.24

Learn vimscript the hard way: 18장 - Responsible Coding

Responsible Coding 지금까지는 vimscript 자체보다는 vim과 vimrc에 넣을 설정들 위주로 설명되어 있었는데, 이 챕터부터는 본격적으로 vimscript에 대한 설명이 시작된다. 이번 챕터는 "어떻게 vimscript를 작성하면서 제정신을 유지하는지" (...)에 관한 챕터이다. (악명높은 vimscrip..) Commenting vimscript의 옵션과 코멘드들은 읽기 힘들기 때문에 주석을 많이많이 달아주자! Grouping ~/.vimrc에 추가한 매핑들은 사용하기 편하지만 점점 많아지면서 관리가 힘들어 질 수 있다. 이를 해결하기 위해 코드 라인과 섹션을 그룹화하고 folding해주자 vimscript 파일에서 fold를 사용하려면 다음 명령어를 추가해주자 augroup f..

tools/vim 2020.03.20

쿠버네티스에서 로컬 이미지 사용하기: Running local docker image in kubernetes

Minikube는 우선적으로 docker image를 pull 해 와서 사용한다. 하지만 보통 개발 공부를 하다 보면 로컬에서 빌드 된 이미지를 사용하여 minikube pod에 띄우는 경우가 많은데, 이런 경우에 image를 찾을 수 없다는 다음 에러를 만나게 된다 (사실 tutorial을 잘 따라하였다면 이런 문제를 만나지 않겠지만) 혹시 비슷한 문제를 겪는 분들을 위해 기록해둔다 $ docker build -t : . $ kubectl run --image=: Failed to pull image "": rpc error: code = Unknown desc = Error response from daemon: pull access denied for cms, repository does not e..

backend 2020.03.20

postgres create user with md5 password: md5 해쉬로 postgres 유저 비밀번호 생성

If make user named john with password abcedf, make md5 hash with password + username $echo -n abcdefjohn | md5 4d9ceab746eb1791f153a8850f275954 Create user using md5 hash Add md5 prefix to md5 hash CREATE ROLE john LOGIN INHERIT ENCRYPTED PASSWORD 'md54d9ceab746eb1791f153a8850f275954'; Or alter user if already exists ALTER ROLE john LOGIN INHERIT ENCRYPTED PASSWORD 'md54d9ceab746eb17..

카테고리 없음 2020.03.19

learn vimscript the hard way - 17장. status line

Status Lines vim에서는 각 window 아래에 있는 status line의 텍스트를 customize 할 수 있다. 보통 vim을 주 에디터로 사용한다면 vim-airline 등 플러그인을 사용중이라 이미 화려한(?) status line을 가지고 있을 것이다. 해당 챕터를 따라하기 위해서는 default vim으로 해 보거나 다른 vim config file (~/essential.vim)를 만들어서 해당 설정 파일로 vim을 구동시키는게 좋다. # 설정 없이 vim open vim -u NONE # 원하는 설정을 essential.vim에 넣어준다. number, relativenumber 등... vim ~/essential.vim vim -u ~/essential.vim이제 statu..

tools/vim 2020.03.18

See markdown preview in vim: vim에서 마크다운 미리보기

나는 블로그 포스트 등 거의 모든 텍스트를 vim으로 작성한다. 그러다 보니 typora, marked 등 마크다운 편집기들이 제공하는 프리뷰 기능을 사용하지 못했는데, 찾아보니 vim에서도 동일하게 preview를 제공해주는 괜찮은 플러그인이 있어서 소개한다. 많은 플러그인이 있는데, 내가 선택한 플러그인은 vim-markdown-preview 이름은 nvim이지만 neovim 말고 vim8.1 이상에서도 사용 가능하다. 나는 vim8이상을 사용중이며 설치 방법도 쉬워 보이고, 다양한 기능을 제공하며 실시간 수정이 반영되는 점에서 해당 플러그인을 선택하였다. (github star 수도 많았다) 예시: 상당히 화려하게 사용하는데 사실 나는 header, list, image, code block 이외에..

카테고리 없음 2020.03.17

vim 마크다운 프리뷰에서 grammarly 사용하기: use grammarly online editor with vim markdown-preview.nvim

나는 영문으로 글을 작성할 때 grammarly 라는 도구를 애용한다. 무료로 여러 브라우저의 플러그인을 제공해 주고, 브라우저에서 텍스트 작성시 단순한 스펠 체크 이외에도 다양한 문법을 체크해 주기 때문이다. 하지만 나는 많은 글들을 vim으로 적기 때문에, vim에서도 grammarly를 사용하고 싶다는 마음에 브라우저로 프리뷰를 제공해 주는 markdown-preview.nvin에 grammarly를 활성화 시켜보기로 하였다. 우선 사용하려는 브라우저에 grammarly 플러그인을 설치한다. 각 브라우저 플러그인 페이지에서 설치 가능하다. grammarly for chrome grammarly for firefox grammarly 플러그인은 브라우저의 텍스트필드에서만 활성화 되기 때문에, mark..

tools/vim 2020.03.16