'Programming'에 해당되는 글 58건

  1. 2011.02.09 Vim 윈도우 단축키 7
  2. 2011.02.06 그냥 최근 근황 2
  3. 2011.01.15 리눅스 콘솔창에서 트윗질 하기 8
  4. 2010.11.14 Trac NonType object 오류
  5. 2010.11.10 아두이노에서 AVR 사용하기 2

Vim 윈도우 단축키

인터넷 찾아보니깐, 일부 기능들만 있어서, 제가 몇개 추가해 보았습니다.

기능 몇개 더 있을거 있지만, 일단 이정도만 있어도 윈도우를 자유 자제로 다룰수 있는거 같아요.

(더 자세한건 :help split)

현재 사용하시는 모니터가 24인치 이상의 모니터라면 텀 여러개 띠우지 말고,

분할해서 사용하는것이 훨씬 낫습니다.

어짜피 이 기능 알고 계신분이라면 따로 vim에 대한 추가 설명이 필요 없을테니,

바로 단축키 나열에 들어 가겠습니다.

특별히 다를건 없습니다, 대부분 vim내에서 이미 사용하고 있는

단축키에다가  ctrl+w 버튼만 먼저 누른다는 차이 정도만 있습니다.

생성/닫기
ctrl+w+n : 비어 있는 새로운 윈도우를 위에 생성한다
ctrl+w+c : 현재 윈도우를 닫는다
ctrl+w+q : 현재 윈도우를 닫는다 (마지막 버퍼라면 vim을 종료 합니다)
ctrl+w+o : 현재 윈도우만(only) 빼고 윈도우를 모두 닫습니다.

파일간 이동
ctrl+w+f  : 현재 커서가 해더파일명 위에 있을경우, 그 해더파일을을 연다
예> #include "abc.h" <- abc.h 문자열에 커서를 두고 ctrl+w+f

ctrl+w+] : 함수위에 커서를 두고 단축키를 누르면  크기는 절반인 새로운 윈도우가 위에 열린다.
(편집용, 포커스가 이동함) (tag)

ctrl+w+} : 함수위에 커서를 두고 단축키를 누르면 크기는 1/4인 새로운 윈도우가 위에 나온다.
(단순 보기, 포커스 없음!)

ctrl+w+i : 위에 새로운 윈도우를 엽니다 (라이브러리 헤더파일 검색)


윈도우간 커서(포커스) 이동
ctrl+w+p : 바로 전 윈도우로 이동합니다
ctrl+w+s : 현재윈도우를 복사해서 위로 새로 생성합니다.
ctrl+w+n : 다음 윈도우 이동(?)
ctrl+w+h : 왼쪽 윈도우로 이동한다
ctrl+w+j  : 오른쪽 윈도우로 이동한다
ctrl+w+k : 아래 윈도우로 이동한다
ctrl+w+l  : 위 윈도우로 이동한다
ctrl+w+t  : 왼쪽 최상위 윈도우로 이동
ctrl+w+b : 오른쪽 최하위 윈도우로 이동


윈도우 크기 조절
ctrl+w+-: 윈도우 (상,하) 크기를 줄인다
ctrl+w++: 윈도우 (상,하) 크기를 늘린다
ctrl+w+< : 윈도우 (좌,우) 크기를 줄인다
ctrl+w+> : 윈도우 (좌,우)크기를 늘린다
ctrl+w+=: 모든 윈도우를 같게 한다.


현재 윈도우 단순 이동
ctrl+w+H : 현재 윈도우를 왼쪽으로 이동한다
ctrl+w+J : 현재 윈도우를 오른쪽으로 이동한다
ctrl+w+K : 현재 윈도우를 아래로 이동한다
ctrl+w+L : 현재 윈도우를 위로 이동한다


현재 윈도우 로테이션
Ctrl+w+r:  오른쪽 윈도우 로테이트
Ctrl+w+R: 왼쪽 윈도우 로테이트
Ctrl+w+x: 위 윈도우 로테이트


Tip
원래 ctrl+w+] 하면 위, 아래로 윈도우가 갈리는데, 이렇게 쓰지말고, 좌,우로 가를려면 다음 내용을
~/.vimrc에 추가해 주면 된다.
map <c-w>] :vertical wincmd ]<CR>

괄호 이동
[{. ]} - '%' 보다 편하다.

추가: vim에서 minibufexpl을 설치하면 따로 설정없이도 윈도우 이동은 ctrl+hjkl로 이동이 가능합니다

그냥 최근 근황

1
블로그는 여전히 잠수 상태이지만...... 저는 살아 있습니다.

포스팅은 된게 있긴한데..... 문제는 제대로 완성된게 없어서 공개하기가 다들 좀 그렇군요 쩝;

2
이제 백수 ㅋ..... 도서관이나 다녀야 할듯, 아님 여행 계획이나 세워 볼까.. 하고 이씀돠.

3
시간이 남는(?) 관계로 밀린 애니 막 보고 있음, 역시 탈덕은 힘든듯여,

블루레이 화질 + 큰 모니터 + 침대 있으니깐 좋군여 아아...

자기전에 누워서 보면 짱 편한......

4
리누기 바탕화면을 깔끔하게? 바꿨습니다.

conky는 위로 올려버리고 그냥 vim에서 화면 갈라 쓰는.....

대체 27인치 모니터 나두고서 왜 그렇게 답답하게 살았는지 모르겠네여 ㅋㅋ 좀 바보인듯 (......)

검은색 막대기랑 시계 주변에 검은거 있는건 원래 투명인데.... 스샷 찍으니깐 저렇게 나오네요.

클릭하면 볼수 있습니다. 왜 블로그에서는 바로 이미지가 안보이는지.......

 스샷보니깐 스레드가지고 고생한게 생각 나는군요 딱 저부분은 아니지만......
 스레드는 주거야해.... 크리티컬 섹션...... 데드락.... 아나...버그 찾기 힘들단 말이야......

사용자 삽입 이미지


5
그러고보니.... 제가 맛폰이를 샀져. 1월달에.... 뭐 아는사람은 다 알겠지만......

근데 이게 피댕이랑 뭐가 다른지....... 실제로 쓰니깐 그냥 덤덤 하군요.

남들은 맛폰이 한번 사면 한달동안 만지작 거린다고 시간 다간다는데..

저는 그닥....... 신기하진 않네여........ 그냥 좀 편한 "PDA"라는 느낌 밖엔;

모델은.... 지금도 버스폰중에서 가성비 최고인 모토글램이에요.

사용자 삽입 이미지

뽑기운이 좀 있는지 오줌액정 안걸려서 잘 쓰고 있는중....

1/4분기내로 프로요 (남들 생강빵 먹을때 ㅠㅠ)나오길 기다리고 있습니다...

하긴뭐 1년 약정이니깐 딱히 생강빵 안나와도 별 상관 없긴 합니다만.

리눅스 콘솔창에서 트윗질 하기

0 당연하게도, 트위터에 가입이 되어 있어야 합니다

1 bti를 설치
# yaourt -S bti

2 다음 링크에 들어가서 어플등록 시작.

http://twitter.com/apps/new

페이지를 열어서 들어가면 대략 다음과 같은 링크가 있당

Application Icon: 그냥 원하는 아이콘을 넣어주면된다. 귀차느니깐 어지간하면 그냥 패스

Application Name: 어플이름을 넣으라는데......

"내가 가지고 있는 어플" 이 아니라 트위터 전체에 대한 어플이름 인듯요.

Description: 그냥 설명임 대충 아무거나 적읍시다

Application Website: http://127.0.0.1

Organization: 여기두 아무거나.... 그냥 전 Home이라 적었어요.

Website: http://127.0.0.1

Application Type: Client

Default Access type: Read & Write

Use Twitter for login: check 하면 편하겠죠.

그리구 "Save" 버튼을 누룹시다.

그럼 완료되면서 application detail 항목이 나타날겁니다.

3 ~/.bti 파일을 엽니다.

그리구 다음과 같이 내용을 입력해 주세요.
consumer_key= 2번에서 나온(application detail의) 를 넣어줍니다
consumer_secret=  2번에서 나온(application detail의)
access_token_key=
access_token_secret=

bti를 실행시킵니다
[~/work/src]$ bti
Please open the following link in your browser, and allow 'bti' to access your account. Then paste back the provided PIN in here.
http://twitter.com/oauth/authorize?oauth_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PIN:

그러면 저렇게 핀인증하면 링크가 나오는데요, 웹브라우저로 해당 링크를 들어가면 핀값이 나와 있을겁니다.

PIN: <- 여기다가 값을 입력해 넣어주세요.

그럼 또 다음과 같이 메세지가 좀 더 나오고, 프로그램이 종료될겁니다.
Please put these two lines in your bti configuration file (~/.bti):
access_token_key= XXXXXXXXXXXXXXXXXXXXXXXXXX
access_token_secret=YYYYYYYYYYYYYYYYYYYYYYYYYYY

이제 설명대로 ~/.bti 파일을 열어서, access_token_key, access_token_secret 을 그대로 적어줍니다.
consumer_key= 2번에서 나온 를 넣어줍니다
consumer_secret=  2번에서 나온
access_token_key= XXXXXXXXXXXXXXXXXXXXXXXXXX
access_token_secret=YYYYYYYYYYYYYYYYYYYYYYYYYYY

저장하고 에티터를 종료합니다. 이제 bti로 글을써서 트위터에 올려볼께요.
$bti
tweet: 바보바보 바보

이제 내 트위터를 확인해 봅시다~ 글이 잘 올라왔나 안왔나~
$bti --action "options"

옵션에는 다음과 같은게 있어요, 저도 잘 몰라서 그냥 man 페이지 참조
update: 트윗글을 올립니다. 그냥 bit 실행하면 어짜피 글 올릴수 있으니깐, 딱히 필요 없는듯 하네요?
friends: 친구, 또는 나의 트윗글을 봅니다
pubilic: 타임라인을 트래킹하는거라는데... 이게 뭐죠.. 저 트윗질 처름이라 잘 몰라여 ㅠㅠ
계정도 어제 만들어서리 ㅋ
replies: "user"가 등록한 친구(?)의 리플을 보는거 같아요 (테스트를 안해봐서 ㅋ)



ps; 머 간단하게 그냥 두세줄 적어도 되든데..... 오랫만에 포스팅하는거라 좀 자세하게? 적어봤어요
pps; 이거 트윗 메세지가가 길면 에러나네여 ㅠ. 100글자도 안넘었는데

Trac NonType object 오류

Trac에서 다음과 같은 Oops 오류가 검출되면....

trac.ini 파일에 설정값이 제대로 안들어간 경우일수도 있으므로 확인해 보자

사용자 삽입 이미지

나 같은 경우에는 다음과 같이 설정되어 있었다

[trac]
repository_sync_per_request = (default)

알고 보니깐 저 값이 잘못되어서 에러가 났던것,

해결방법은 그냥 간단하게 default를 없애면 된다

[trac]
repository_sync_per_request =

이렇게 하면 일단 메인 위키페이지는 정상적으로 뜨는데,

Error with navigation contributor "BrowserModule"

메세지가 위에 뜬다... (스크린샷은 못찍었다......)

그리구 (git) 소스둘러보기 메뉴가 아예 뜨지 않고 타임라인(시간이력) 으로 들어가면 또 웁스 오류가 난다

아놔 다 고친줄 알았더니만 또 이 오류냐 !!!

이 오류 해결법은 다음과 같다....... 그냥 "trac-gitplugin"을 전부 지우고

(아치라면 AUR에 있는 패키지는 쓰지말자 컴파일도 안되는데다가 설치한다 해도 작동도 잘 안된다.)


다음과 같이 재 설치하면 된다

(아치가 아닐경우에는 그냥 easy_install 만 쓰면된다 - 그리고 나는 trac 0.12 임)
# easy_install-2.7 http://github.com/hvr/trac-git-plugin/tarball/master

이제 tracd를 재시작하면 에러 없이 잘 쓸수가 있게 된다. ㅋ

역시 문제가 생기면 다 지우고 재설치가 답인가......씁......

처음에 아치에서 파이썬버전이 막 바뀌면서 생긴 문제인줄 알았는데 그것이 아니라,

어떻게 하다가 설정값이 바껴서 생긴 문제인걸로 파악되었다.

나는 바꾼적이 없었는데... 패키지 깔면서 어떻게 설정값을 건들였거나, 아니면 설정값 정책이 변경된것 같다

이걸 몰라서 방치하다가 한달만에 고쳤다 ㅜ

그런데 trac사용법또 까먹었다는... 다시 좀더 봐야할듯....

아두이노에서 AVR 사용하기

Arduino를 조금 써보니깐 왠지 직접 못건드리니 찝찝하다....

C로 직접 건들여보면 더 좋을것 같아서  "AVR 처럼 사용가능하게 하는 방법" 을

구글에서 찾으니깐 다음과 같은 글이 나왔다...
http://www.javiervalcarce.eu/wiki/Program_Arduino_with_AVR-GCC
http://symbolx.org/robotics/107-arduinoavr-command-line-dev-environment

2번쩨 링크를 보면....예제소스도 있고, Makefile도 있겠다 싶어서 바로

#make;make upload

해봤으나 실패...

다음과 같은 오류가 떠버리고 더이상 진행되지 않는다.

avrdude: stk500_recv(): programmer is not responding

에러를 또 구글에서 찾아보니깐 다름과 같이 하면 된다구 하네. (역시 구글신은 모르는게 없엉....)

http://www.neuraladvance.com/2010/04/08/using-avrdude-with-the-arduino-duemilanove/

응? 거의 비슷한데.... 하다가 좀더 자세히 보니 upload할때 -b 플래그가 빠져있는것을 확인했다..

man페이지 보니깐 baudrate라고 한다...  업로드 속도 관련된듯하다 (이것도 구글이 갈켜줌...ㅋ)

그래서 최종으로 만들어진 Makefile.... 첫번째 링크의  Makefile과 유사하다.

CC=avr-gcc
CFLAGS=-Wall -Os -DF_CPU=$(F_CPU) -mmcu=$(MCU)
MCU=atmega168
F_CPU=16000000UL

OBJCOPY=avr-objcopy
BIN_FORMAT=ihex

# 통신포트 는 개인마다 다를수 있으므로 수동으로 설정 (arduino 의 그 통신포트를 그대로 사용)
PORT=/dev/ttyACM0
BAUD=19200
PROTOCOL=stk500v1
PART=$(MCU)

# 당연히 avrdude 가 설치되어 있어야 한다.
AVRDUDE=avrdude -F -V

RM=rm -f

.PHONY: all
all: main.hex

main.hex: main.elf

main.elf: main.s

# 소스파일명이 다르다면 변경해 주도록 한다.
main.s: main.c

.PHONY: clean
clean:
        $(RM) main.elf main.hex main.s

.PHONY: upload
upload: main.hex
        $(AVRDUDE) -c $(PROTOCOL) -p $(PART) -P $(PORT) -U flash:w:$<

%.elf: %.s ; $(CC) $(CFLAGS) -s -o $@ $<

%.s: %.c ; $(CC) $(CFLAGS) -S -o $@ $<

%.hex: %.elf ; $(OBJCOPY) -O $(BIN_FORMAT) -R .eeprom $< $@

그리고 다음 소스를 복사해서...

(첫번째 링크에 있는 소스와 같은 소스, 왔다가따 하기 귀찮아서 그냥 따로 붙여 넣었다)
/*
* LED 껌벅 껌벅 소스
*/

#include <avr/io.h>
#include <util/delay.h>

int main (void)
{
/* set PORTB for output*/
DDRB = 0xFF;

while (1) {
/* set PORTB.6 high */
PORTB = 0x20;

_delay_ms(1000);

/* set PORTB.6 low */
PORTB = 0x04;

_delay_ms(1000);
}

return 1;
}

실행하면... 뭐라고 메세지가 쭉 나오고 Arduino 보드에 반응이 나타날것이다

제대로 확인하고 싶으면 딜레이 속도를 조절해서 LED의 깜박임 속도를 보면 된다~

아 그리구 Arduino랑 AVR랑 핀 배열에 조금 차이가 있으니깐 꼭 한번 보자.

Arduino 소스를 AVR로 만들어볼때 유용할듯... 해봐야지...ㅋ

사용자 삽입 이미지
http://www.arduino.cc/en/Hacking/PinMapping168
http://techblog.textcube.com/156

어... 근데 이거 적다보니깐 다 어디서 배껴온거네 ㅋㅋㅋㅋ 내가 만든건 뭐냑 ㅋㅋㅋ



ps1; Makefile로 하는거니깐.... vim에서 이제 편하게 코딩이 가능하다 -_-v 자바 안녕~ 스케치 안녕~

ps2; avrdude로 하니깐 부트로더 툴체인 어쩌고 신경 안써서 편한거 같다.

3학년 임베디드 시간에 툴체인 설정하는거 생각하면 이건 축복이나 다름없다 (뭐 다르긴하다만)

ps3; 위에 적힌대로 말고, 그냥 Arduino Code를 외부 에디터로 사용하려면

다음과 같은 방법을 사용 하면 된다.

http://www.arduino.cc/en/uploads/Hacking/Makefile

난 시도는 해봤는데 이상하게 컴파일은 안되서 때려치웠음 -_-.....

'Hardware' 카테고리의 다른 글

아두이노 리눅스에서 사용하기  (7) 2010.10.23
NEXT-510UHP USB허브 구입기  (10) 2010.09.13
모니터를 사자 #1  (6) 2010.08.01
prev 1 2 3 4 ··· 12 next