Prolog 콘솔에서 edit 명령어를 사용하면, SWI-Prolog(swipl)이 실행 중인 OS에 따라 편집기가 열리고, edit 명령어의 인자로 넣은 pl 파일을 수정할 수 있다. 그런데 윈도우에서는 메모장이 기본 편집기로 설정되어 있기 때문에 코딩 덕후의 마음을 언짢게 한다. 이럴 땐 내가 원하는 다른 편집기로 바꿀 수 있다.

 

윈도우에서 sublime을 기본 편집기로 바꿔주는 경우를 생각해보자.

 

swipl이 설치 된 곳에 가면 edit.pl이 있다. 여기에 기본 편집기를 설정한다. 이 파일을 아무 편집기(아마 sublime)를 관리자 권한으로 실행 후 열어준다. 파일을 열고 잘 찾아보면 아래와 같이 각종 편집기가 정의되어 있다.

 

 

edit_command(vi, '%e +%d \'%f\'').
edit_command(vi, '%e \'%f\'').
edit_command(emacs, '%e +%d \'%f\'').
edit_command(emacs, '%e \'%f\'').
edit_command(notepad, '"%e" "%f"').
edit_command(wordpad, '"%e" "%f"').
edit_command(uedit32, '%e "%f/%d/0"'). % ultraedit (www.ultraedit.com)
edit_command(jedit, '%e -wait \'%f\' +line:%d').
edit_command(jedit, '%e -wait \'%f\'').
edit_command(edit, '%e %f:%d'). % PceEmacs client script
edit_command(edit, '%e %f').

 

swipl이 sublime이 뭔지 모를테니, 편집기 이름을 sublime으로 지어주고, 실행위치를 알려주기로 한다. 예를 들면 아래와 같은 코드를 추가해주면 된다.

 

edit_command(sublime, 'C:\\Program Files\\Sublime Text 3\\sublime_text.exe "%f"').

 

이제 기본으로 실행할 편집기를 sublime으로 바꾸어준다. 기존의 코드는 주석처리해버리거나 지운다.

 

 

% editor(notepad) :-
% current_prolog_flag(windows, true),
% !.
editor(sublime) :-
current_prolog_flag(windows, true),
!.

 

참고

https://www.swi-prolog.org/FAQ/BindEditor.html

https://www.swi-prolog.org/pldoc/doc_for?object=prolog_edit%3Aedit_command/2

Posted by 공돌이pooh
,