전체 글 586

Learn Vimscript The Hard Way - 23: Functions

Functions vimscript에도 다른 많은 프로그래밍 언어처럼 함수가 있다. 일단 기본적인 사용법부터 알아보자. 다름 코멘드를 실행해보자. :function meow()meow() 함수가 만들어 질 것이라고 기대했지만, 아래와 같은 에러가 발생한다. E128: Function name must start with a capital or "s:": meow()Vimscript 함수는 scoping 되지 않았다면 반드시 대문자로 시작하여야 한다. 뒤에 나오는 것처럼 함수에 scope를 추가하더라도 대문자로 적기를 convention으로 권장하고 있다. :function Meow() : echom "Meow!" :endfunction이제 위에서 만든 Meow 함수를 호출해보자. :call Meow()M..

tools/vim 2020.03.30

kubernetes로 django 웹서버 띄우기 - minikube, kubectl / django with kubernetes

django with kubernetes ctl https://medium.com/@markgituma/kubernetes-local-to-production-with-django-2-docker-and-minikube-ba843d858817 참고 The foundational concept of Kubernetes is in the management of pods. A pod is one or more containers deployed together as a group within the same physical or virtual host machine colloquially known as a node. Requirements Install minikube minikube는 로컬에서 쉽게 싱글..

tools 2020.03.29

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