콘텐츠로 건너뛰기
Home » function

function

vim script 함수 총정리

vim에서 자주 사용하는 간단한 매크로는 키 맵으로 정의해서 사용할 수 있다. 하지만 여러 명령을 결합하거나, 데이터를 조작하거나 상황에 따라서 분기해야하는 등의 좀 더 복잡한 동작을 구현하기 위해서는 함수가 필요하다. vim script에서도 함수를 지원하고 있어서 이를 활용할 수 있는데, 오늘은 함수를 정의하고 사용하는 여러 방법에 대해서 정리해보도록 하겠다. 가능하면 이 포스트 하나로 vim 스크립트에서 함수를 정의하고 사용하는 것과 관련된 내용은 모두 다뤘으면 한다. (그리고 이후에 vim script 관련 포스팅을 하더라도 참고용으로 긴 설명 글이 필요하기도 하고…)

더 보기 »vim script 함수 총정리

(Vim) 사용자 정의 함수를 작성하는 법

Vim에서 간단한 조작으로 좀 더 복잡한 기능을 만드는 기능으로는 키맵이나 사용자 정의 명령을 정의하는 방법들이 있다. 다만 이러한 기능들은 기본적으로 항상 똑같은 입력을 단축하여 수행하게 하는 수준에서 사용된다. 특정한 환경이나 조건에서 작동하도록 기능을 커스터마이징하고 싶거나, 보다 복잡하고 정교한 기능을 사용하고 싶다면 사용자가 직접 함수를 정의하여 사용할 수 있다.

사용자 정의 함수는 다음과 같이 사용할 수 있다.

  • 특정 키맵을 사용하여 사용자 정의 함수를 호출한다.
  • 사용자 정의 함수를 호출하는 사용자 정의 명령을 만들어 사용한다.
  • 삽입모드 키맵을 만들어서 입력 중에 특정 키를 눌러 사용자 함수를 호출한다.

사용자 함수를 정의하는 전통적인 명령은 :fu[nction] 으로, 명령을 선언한 후 :endfu[nction] 명령을 만날 때까지 입력된 모든 명령이 순서대로 함수의 body로 기록되는 방식이다.이 명령은 새로운 함수를 정의하는 동작 외에도 기존에 생성된 사용자 정의 함수를 모두 리스트업하는 기능을 수행한다. 예를 들어 이름이 “~Files”로 끝나는 사용자 함수들을 확인하려면 :function /Files$ 라고 실행하면 함수의 검색 결과를 볼 수 있다.

더 보기 »(Vim) 사용자 정의 함수를 작성하는 법

LiveScript 살펴보기 – 03 함수

LS에서 함수는 일반 문법 편에서 잠깐 언급했듯이 화살표를 써서 간단히 정의할 수 있다. 이 함수 표현에서 중요한 점 두 가지는 첫 째 우변은 하나 이상의 표현식이라는 점과 표현식이 순서대로 나열되는 경우 맨 마지막 표현식의 결과가 자동으로 리턴된다는 것이다. 함수 LS는 함수형 프로그래밍 언어의 스타일을 많이 도입했다고 하였다. 비록 LS가 진짜 순수한 함수형 언어는 아니지만, 함수형 언어의 스타일을 도입한다는 것은 LS내의 함수라는 것은 가급적 아래와 같은 특징을 갖도록 디자인되어야 한다는 것이다. 순수성 : 함수의 결과값이 순수하게 파라미터에만 의존할 것. 따라서 입력된… 더 보기 »LiveScript 살펴보기 – 03 함수

[C] 함수로 전달된 포인터

포인터를 함수의 인자로 받는 경우, 함수내에서 원본을 변경하는가. 내용이 너무 두서 없어서 포스트 전체를 수정합니다. 처음 의문이 든 부분은, 문자열을 가리키는 포인터를 함수로 넘겨주고 문자열을 변형하면 포인터의 값이 변하는가?라는것이었는데. 이는 사실 그리 어려운 문제가 아니다. 포인터는 메모리의 주소를 가리키는 타입의 변수이고 이는 사실 unsigned int 나 unsinged int64 등의 정수형과 비슷하게 숫자를(메모리 번지도 결국 숫자값이므로) 담는 변수이다. 그리고 함수에 선언된 인자는 함수 내부에서만 사용하는 지역변수이고, 표준 타입의 변수를 함수에 전달하면 그 값이 인자로 선언한 변수에 들어가는데, 이건 그냥 변수의 값이… 더 보기 »[C] 함수로 전달된 포인터

[Python101] 005 함수,모듈, 그리고 도움이 되는 도구들

지난 시간까지 기본적인 프로그래밍에 필요한 “입출력”을 다루는 부분을 간단하게 나마 살펴보았다. 실제로 지금까지의 내용은 뭔가 설명이 필요하거나 개념적인 이해를 도모하는 부분과는 조금 거리가 있었고, 마치 조리법처럼 “이렇게 하면 이렇게 이렇게 됩니다.” 정도였기에 경우에 따라서는 조금 재미도 떨어지고 지겨운 부분이 없지 않아 있었을 것으로 생각된다. 이번 시간부터는 프로그램을 구성하는 단위와 이를 어떻게 만드는지, 그리고 프로그램의 흐름은 어떤 식으로 만들어지는지를 살펴보고자 한다. 모듈 모듈(Module)이라는 것은 다른 것으로 대체 가능한 어떤 구성 요소를 뜻하는데, 파이썬에서는 미리 만들어두었다가 필요할 때 꺼내 쓰는 레고 조각같은… 더 보기 »[Python101] 005 함수,모듈, 그리고 도움이 되는 도구들