vi 명령어

Posted 2009/04/16 21:07

vi를 쓰긴 쓰지만 복잡한 작업을 하지 않기 때문에 아주 기본적인 기능 밖에 모른다.
좀 더 폼나게 사용하기 위해서 신기한 기능들을 정리해 보았다.

 [folding]
여러줄을 한 줄로 접는 기능
zf - 폴드(fold) 생성
zo - 폴드 열기
zc - 폴드 닫기 

zr - 모든 폴드 열기
zm - 모든 폴드 닫기 

몇가지 설정
:set foldcolumn=4 - 왼쪽에 공백을 만들어서 알아보기 쉽게 해줌
:set foldopen=all - 커서가 지나가면 폴드가 자동으로 열림
:set foldclose=all - 자동으로 닫힘

좀 더 자세한 설명은
http://vimdoc.sourceforge.net/htmldoc/usr_28.html

 [tags]
이런 기능이 있었다니...vi의 신세계를 경험 했다.^^ 프로그래밍을 할 때 아주 편리한 기능이다. eclipse로 치면 메쏘드가 정의된 곳을 가기 위한 단축키 F3, 또는 Ctrl키를 누른 상태에서 마우스 왼클릭과 비슷! 

$MY_HOME/my_project/python_program 이라는 디렉토리가 있다.
여기서 먼서 tag 정보를 가지고 있는 파일을 생성해야 한다.
그럼 tag란 무엇인가? It is a location where an identifier is defined. 이렇단다.
아무튼 아래 명령을 리눅스 커멘드라인에 입력하고 엔터
#ctags -R .
이렇게 하면 tags 라는 파일이 생성이 된다. 이 때 -R 옵션은 모든 하위 디렉토리도 포함하라는 의미이다.

그리고 이제 편집할 소스 파일을 연다.
소스 코드에 어떤 메쏘드가 있고 여기서 Ctrl + ] 를 누르면 그 메쏘드가 정의된 곳으로 이동할 수 있다.
확인한 뒤에 원래 위치로 돌아 오려면 Ctrl + t 를 누른다. 

이 정도 기능만으로도 땡큐한데 그외에도 수많은 기능들이 있지만 난 머리가 나빠서 이것만 기억할란다. 

좀 더 자세한 설명은
http://vimdoc.sourceforge.net/htmldoc/usr_29.html 

※vi 사용법에 대해서 잘 정리 된 곳!
- 옵션 및 사용법에 대해 아주 자세히 설명[영문]
http://vimdoc.sourceforge.net/htmldoc/usr_toc.html

- 많이 쓰는 기능 위주로 친절하게 설명[한글]
http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Development/Env/UsedVim

 

 

저작자 표시

'프로그래밍(dev)' 카테고리의 다른 글

vi 명령어  (2) 2009/04/16
grails + eclipse  (0) 2009/04/13
Groovy Template 사용하기  (0) 2009/04/10
그루비 체험기  (0) 2009/04/08
html을 이미지로 변환  (0) 2009/03/27
[C-Time] Groovy  (0) 2009/03/13

grails + eclipse

Posted 2009/04/13 23:21
If you are using the Eclipse Groovy plugin then make sure you enable the preference 'Disable Groovy Compiler Generating Class Files' (newer versions: Project -> Preferences -> Groovy Project Preferences / older versions: Windows -> Preferences -> Groovy Preferences). By default this option is disabled and generates class files for your groovy files, and stores them in the basedir of your Grails project. When these class files are generated, unexpected behaviour is encountered like not able to generate controllers and views for your domain classes.

위에서 처럼 설정을 하지 않으면 가장 상위 디렉터리에 컴파일된 파일들이 생성된다.
그리고 밑도 끝도 없는 Execption이 발생한다.-0-
저작자 표시

'프로그래밍(dev)' 카테고리의 다른 글

vi 명령어  (2) 2009/04/16
grails + eclipse  (0) 2009/04/13
Groovy Template 사용하기  (0) 2009/04/10
그루비 체험기  (0) 2009/04/08
html을 이미지로 변환  (0) 2009/03/27
[C-Time] Groovy  (0) 2009/03/13

Groovy Template 사용하기

Posted 2009/04/10 17:07
간단하게 템플릿을 사용하는 프로그램



package net.tistory.monge.bbs

import java.lang.StringBuffer
import groovy.text.SimpleTemplateEngine

class MyInfoPage {
	File myPage = new File('./resources/template/MyPage.xml')
	def pageTemplate = myPage.getText()
	
	def printPage() {
		def engine = new SimpleTemplateEngine()
		def template = engine.createTemplate(pageTemplate)
		def binding = getData()
		print template.make(binding).toString()
	}
	
	def getData() {
		def data = [name : 'Kwon', task : ['밥 먹기', '놀기']]
	}
	
	static void main(args) {
		def page = new MyInfoPage()
		page.printPage()
	}
}


MyPage.xml


	$name
	
		<% task.each {%>$it
		<% } %>
	

저작자 표시

'프로그래밍(dev)' 카테고리의 다른 글

vi 명령어  (2) 2009/04/16
grails + eclipse  (0) 2009/04/13
Groovy Template 사용하기  (0) 2009/04/10
그루비 체험기  (0) 2009/04/08
html을 이미지로 변환  (0) 2009/03/27
[C-Time] Groovy  (0) 2009/03/13

그루비 체험기

Posted 2009/04/08 22:04

그루비로 xml파서를 만들어 봤는데 좋은거 같기도 하고, 그저 그런거 같기도 하고..
확실히 코드 줄수는 많이 줄었다.
특히 NodeList를 while을 사용해서 파싱할 때는 머리가 지끈했는데
그루비의 closure 문법을 사용하니까 한결 심플해 졌다.
다만 clusure가 하나 들어갈 때마다 컴파일 했을 때 클래스 파일이 하나 더 늘어난다.
만약 Babo.groovy 라는 파일이 closure를 세개 가지고 있다면
java byte code로 컴파일 했을 때 총 4개의 class 파일이 생성 된다.
은근히 지저분 하다.

groovy도 python처럼 script language라서 문법도 비슷하다.
다만 java와 함께 eclipse에서 개발하다 보니까
내가 지금 하는 짓이 문법에 맞는지 아닌지 의구심이 들 때가 많다.

예를 들어
def man = "abcdefg"[0..3]
이렇게 짜놓고 이게 과연 될까??라는 의문이 생긴다. (뭔말인지 알겠죠? 내가 지금 Eclipse를 사용하고 있다니까!!)

저작자 표시

'프로그래밍(dev)' 카테고리의 다른 글

grails + eclipse  (0) 2009/04/13
Groovy Template 사용하기  (0) 2009/04/10
그루비 체험기  (0) 2009/04/08
html을 이미지로 변환  (0) 2009/03/27
[C-Time] Groovy  (0) 2009/03/13
객관적인 표현  (2) 2009/02/17
« PREV : 1 : 2 : 3 : 4 : 5 : ... 7 : NEXT »