vim, 오늘 .vimrc 에 추가된 설정 정보. [ conceal, LCS, list, listchars, nbsp, Trail, VI, VIM, vimrc ]
Computer 2012/01/13 00:55vim, 탭이나 개행문자를 보고싶어요.
list mode
List mode: Show tabs as CTRL-I is displayed, display $ after end of line.
즉, list mode로 들어가면, 탭문자와 줄바꿈 문자가 화면에 표시되게 됩니다. 그리고 list mode는 다음 명령으로 들어갈 수 있습니다.
:set list
'listchars'
list 모드에서, 탭 문자나, 개행문자를 '→' '↵' 와 같은 문자로... 나타나게 할 수 있습니다.(인코딩이 UTF-8인 경우, UTF-8 문자도 사용 가능.)
그리고 탭문자나 개행문자 이외에도 다음과 같은 문자들을 지원합니다.
| eol:c | 개행문자 'c'로 표시 |
| tab:xy | 탭문자 첫 글자는 'x'로 이후는 탭 너비에 따라 하나 이상의 'y'를 표시 |
| trail:c | 구문이 끝난뒤 들어간 불필요한 공백문자를 'c'로 표시 |
| extends:c | vim이 'nowrap' 상태에서 화면을 뚫고 넘어간 문장이 있는 라인 오른쪽에 'c'표시 |
| precedes:c | 마찬가지로 'nowrap' 상태에서 오른쪽으로 길게 편잡중일때 화면에 가려진 왼쪽 영역에 'c'를 표시 |
| conceal:c | 'conceallevel'이 1인경우, 숨김문자(?, Concealed Text)영역에 'c' 표시. |
| nbsp:c | 줄 바꿈 없는 공백(Non-Breakable Space)를 'c'로 표시 |
위 설정들 중 몇몇을 복합적으로 설정하려면 다음과 같은 방법으로 설정합니다.
:set lcs=tab:>-,trail:- :set lcs=tab:>-,eol:<,nbsp:% :set lcs=extends:>,precedes:<
기존의 lcs 속성에 새로운 속성을 추가하려면 다음과 같이 입력하면 됩니다.
:set lcs+=nbsp:_
색을 다르게..
탭이나 줄바꿈 기호가 들어간 뒤로 코드가 더 지저분해진 경우 다음의 명령으로, 해당 기호의 색을 배경색과 비슷하게 수정할 수 있습니다.
hi NonText ctermfg=7 guifg=gray hi SpecialKey ctermfg=7 guifg=gray
"eol", "extends" 그리고 "precedes"는 NonText으로 "nbsp", "tab" 그리고 "trail"은 SpecialKey로 화면 표시 전/배경 색을 수정해 주면 됩니다.
CoffeeScript가 바로 생각나지 않는 JavaScript 코드들. [ Coffeescript, JavaScript, 자바스크립트, 커피스크립트 ]
Computer 2011/12/10 10:00"setTimeout" on JavaScript.
setTimeout 은 자바스크립트에서 자주 쓰이는 평범한 함수의 형태입니다.
setTimeout(function(){
eat('food');
}, 6000);
CoffeeScript 코드로 바꾸려면 어떻게 해야 할까요?
"setTimeout" on CoffeeScript.
저는 이렇게 작성했습니다. 바로 생각이 나지 않더군요.
setTimeout ()->
eat 'food'
, 6000
"assert.response" on JavaScript
JavaScript TDD 프레임웍인 expresso에서 assert.response 는 이렇게 생겼습니다.
assert.response(server, {
url: '/foo',
method: 'POST',
data: 'bar baz'
}, {
body: '/foo bar baz',
status: 200
}, function(res){
// All done, do some more tests if needed
});
커피 스크립트로, 어떻게 작성해야 할까요?
"assert.response" on CoffeeScript
많은 변종을 거쳐서 다음과 같은 코드가 작성되었습니다. 테스트 링크
assert.response server
,
url: '/foo'
method: 'POST'
data: 'bar baz'
,
body: '/foo bar baz'
status: 200
,
(res) ->
# All done, do some more tests if needed
뭘 기억하고 싶은 거냐면...
CoffeeScript 코드를 작성하다 자주 오류가 나는 부분을 정리해 놓은 것입니다.
Ruby, accessorsThe Day of Code
attr_reader, attr_accessor 는 뭘까요?
흥미만 잔뜩 있던, Ruby에 대해서 알고 싶기도 하고, 리팩터링 책도 읽지 못해본 상태라, 두마리 토끼를 잡아보려, "리팩토링:루비 에디션" 을 읽고 있습니다.
그런데 첫 코드에서 막혀 버렸습니다.
나머지는 대충 알겠는데, attr_reader, attr_accessor 요녀석들은 뭘까요?
class Movie
REGULAR = 0
NEW_RELEASE =1
CHILDRENS =2
attr_reader :title
attr_accessor :price_code
def initialize(title, price_code)
@title, @price_code = title, price_code
end
end
Accessors
Yukihiro Matsumoto 님의 Ruby User’s Guide에 쉽게 설명이 있네요.
| Shortcut | Effect |
|---|---|
| attr_reader :v | def v; @v; end |
| attr_writer :v | def v=(value); @v=value; end |
| attr_accessor :v | attr_reader :v; attr_writer :v |
| attr_accessor :v, :w | attr_accessor :v; attr_accessor :w |