자바스크립트로 VI를 만들어 봅시다!

alee의 이미지

예전에 아래 글타래
http://kldp.org/node/75270
에서 언급했던 자바스크립트 VI 프로젝트를 시작해 볼까 합니다.
일단 Esc를 눌러서 normal 모드로 들어가는 것과 h,j,k,l,0,$,a,A,i,I,x,X 명령만
구현된 상태입니다.

http://alee.qubit.name/misc/vita.html

FireFox와 IE에서 사용할 수 있는 method가 전혀 달라서 여기까지 구현하는
데에도 상당히 애를 먹었습니다. 일단 구현 가능성과 속도를 테스트하기 위한
목적으로 만든 것이라 소스에 주석도 전혀 없고 완전히 스파게티 소스입니다.

일단 제 시스템에서는 100줄 이상 넘어가도 IE와 FF에서 모두 사용하기에 충분한
속도가 나옵니다. 다른 시스템에서는 어떤지 테스트를 부탁드립니다.

또, 참여를 희망하는 분이 몇 분 계셨던 것으로 기억하는데, 제가 프로젝트를
이끌어 본 경험이 전혀 없어서 어떤 식으로 일을 진행해야 할지 모르겠습니다.
이 부분에 대해서도 조언을 부탁드립니다.

댓글

budle77의 이미지

제가 테스트해보니까 Firefox 2.0.0.1에서 ESC버튼을 누르고 hjkl키로 이동을 시도해봤는데 안되네요.
제가 사용을 잘못한건가요

===========================================
개발과 관리가 가능한 DBA를 목표로...

lipide의 이미지

혹시 textarea에 클릭 한번 해주셔서 커서 나온다음에 해보셨나요?
처음에 포커스가 textarea로 가지 않는것 같습니다만;;

budle77의 이미지

다시 해보니까요.
textarea 화면에서도 글이 출력되어있는 곳을 마우스로 클릭해주고, 그뒤에 ESC 키를 눌러줘야 hjkl키로 이동이 가능하네요.
textarea 화면에서 글의 마지막 즉, "GNU General Public License for more details." 아래줄을 클릭하면 ESC키를 눌러도 hjkl로 이동이 안되고 그냥 입력 모드가 되네요.

===========================================
개발과 관리가 가능한 DBA를 목표로...

hey의 이미지

한 글자 치고 esc 누르면 됩니다.
잘 모르겠지만(^^) 한 칸을 블럭으로 잡아서 편집 모드 커서처럼 보이게 하는 것 같은데, 글씨가 없으면 안 되겠죠. ^^ ;

May the F/OSS be with you..



----------------------------
May the F/OSS be with you..


alee의 이미지

vi를 모르는 사람도 글을 쓰는 데에 어려움이 없도록 하기 위해서 블럭이 해제되면 자동으로
Insert 모드로 바뀌도록 만들었습니다. 따라서 Normal 모드에서 textarea를 마우스로 클릭
하면 자동으로 Insert 모드로 바뀝니다. Normal 모드로 들어가기 위해서는 textarea에
포커스가 가 있는 상태에서 Esc를 눌러야 합니다.

hey의 이미지

참여 희망했던 것 접니다 ^^
보통 주위에서 보면 IRC 멤버가 주축이 되어서 작업하는 팀이 잘 나가던데, (아희, 수정 ..) 제가 IRC를 할 수 없는 몸이기 때문에 ^^ 그렇게 하자고 주장하는 건 좀 그렇고, 하루 빨리 일단 공동 작업 공간에 소스를 올리는 것이 좋겠습니다. 당분간은 코드 정리 등의 준비를 하셔야 하기 때문에 작업을 같이 하지 못할 거라고 생각하시더라도 소스 컨트롤에 올려놓고 고치는게 좋겠습니다.

일단 제가 추천하는건 trac과 KLDP.net 두 가진데, KLDP에서 이야기가 나온 거니만큼 KLDP.net에서 하는 게 좋겠지만, 접근성이나 이슈 관리는 trac이 더 좋은 것 같더라고요. (metabbs) 만약에 trac을 쓰시겠다면 제가 trac과 svn 저장 공간을 빌려드릴 수 있습니다.

그리고~ vi같은 복잡한 프로젝트는 unittest를 좀 돌리는 게 좋을 것 같아요. 협업할 때는 테스팅이 더 중요하니까요. 비록 tdd는 안 하더라도 말이지요. ^^

May the F/OSS be with you..



----------------------------
May the F/OSS be with you..


댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.