2016년 9월 21일 수요일

Use of vim

I think good programmer is learning various knowledge and
having various programming skills.

But, I think used to programming toos is important recently.

Vim is good editor for programmer.




Simple use of vim


vim filename : open filename
view filename : open filename read only (I think it is useless)

:q! : quit no save
:wq : save and quit

i : insert character before cursor
I : insert character before line
o : insert character under line
O : insert character upper line
a : insert character after cursor
A : insert character after line

w : right direction next word last character
e : right direction next word first character
b : previous word last character

dd : line delete
1,10d : 1 ~ 10 lines delete
yy : paste

h : left
j : down
k : up
l : right

^ : first of line
$ : last of line


For beginner, this is sufficient

vim 사용 후기 및 사용법

나는 좋은 프로그래머가 되기 위해서는 이론적인 지식이나
프로그래밍 기술이 중요하다고 생각했다.

하지만 요즘들어 생각해보니, 툴의 사용을 익히는 것도
좋은 프로그래머가 되기 위한 중요한 요소 같다.

툴의 사용은 금방 익힐수 있다고 생각해서
툴 사용법이나 단축키 같은 건 전혀 외우지 않았다.

하지만 툴을 잘 선택해서 능숙히 사용할 수 있게 된다면,
프로그래머로서의 생산성이 올라가서
더 프로그래밍 자체에 집중할수 있을 것이다.

따라서 나는 편집기 중 vim과 emacs를 고려하다가,
일단 쉬워 보이는 vim을 사용중이다.

확실히 마우스를 사용하지 않고 키보드로만 프로그래밍을 진행하니,
더 집중이 잘 되고, 생각의 흐름이 끊기지 않는 것 같다.

아직 사용하기 시작한지는 얼마 안되었지만,
능숙하게 다룰 때 까진 vim 중심으로 코드를 작성하려고 한다.




아래는 간단한 사용법이다.


vim filename : filename 파일 열기
view filename : 읽기 모드로 filename 열기(별로 쓸일 없을 것 같다.)

:q! : 저장하지 않고 종료
:wq : 저장 후 종료

i : 커서 앞쪽에 문자 삽입
I : 행 앞쪽에 문자 삽입
o : 행 아래쪽에 문자 삽입
O : 행 위쪽에 문자 삽입
a : 커서 뒤쪽에 문자 삽입
A : 행 뒤쪽에 문자 삽입

w : 오른쪽 방향의 다음 단어 끝 문자
e : 오른쪽 방향의 다음 단어 처음 문자
b : 이전 단어 끝 문자

dd : 현재 행 삭제
1,10d : 1 ~ 10 행 삭제
yy : 붙여 넣기

h : 좌
j : 하
k : 상
l : 우

^ : 행의 처음
$ : 행의 끝


일단 이 정도만 알고 시작하면, 어느정도 쓸만 할 것이다.

Using GPIO in Raspberry pi

GPIO(General Purpose Input Output)



Some sensor is necessary a breadboard

The basic use of sensor is connecting 5V and GND to a sensor(or a breadboard),
then select data line for data sending.
(#4, #17, #18... etc)


You can use GPIO in raspberry using RPi.GPIO Module in python.

python code


# -*- coding: utf8 -*-

from RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUB_UP)

print GPIO.input(4)


The example displays data reading from #4.
You can process various data from sensor.
(Fire sensor, Temperature sensor...)

라즈베리 파이 GPIO 사용하기

GPIO(General Purpose Input Output - 범용입출력)


센서에 따라서 브레드 보드(일명 빵판)이 필요할 수도 있다.




가장 기본적인 센서 사용법은 센서에 5V 전압과 GND를 연결한 뒤,
데이터를 전송하기 위해 적당한 번호에 선을 연결하면 된다.
(위에서는 #4, #17, #18... 등)

라즈베리파이에서 python의 RPi.GPIO 모듈을 이용하여 GPIO를 사용할 수 있다.

python 코드


# -*- coding: utf8 -*-

from RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUB_UP)

print GPIO.input(4)


위의 예제는 #4로 부터 정보를 읽어들여서 출력하는 예제이다.
어떤 센서를 연결했느냐에 따라 온도 값이나 화재 상황등
다양한 정보를 입력 받아서 처리할 수 있다.