포트란 관련해서 vim편집기 사용 시 주석에 있는 '에 의해 많은 줄들이 컬러처리되는 문제
글쓴이: sangjun11316 / 작성시간: 금, 2018/11/16 - 1:34오후
안녕하세요, 수치해석 관련해서 포트란을 사용하고 있는 학생입니다.
vim편집기로 f파일을 열다보면 주석처리된 문장 속에 ' 가 등장할 경우, 다음 '가 등장할 때 까지의 모든 문장이 빨간색으로 색이 입혀지는 문제가 있습니다.
예를들어
c # we're near end of computation
if (method(4) .eq. 1) then
write(6, 601) n, cfl, dt, t
601 format('CLAW2...Step', i6, 'Courant number = ', f6.3, 'dt =', d12.4, 't =', d12.4)
endif
c
위와 같이 작성되어 있는 줄이 있다면 주석처리되어 있는 첫 번째 줄의 we're 에 있는 ' 부터 시작해서 601로 시작하는 4번째 줄의 CLAW2 앞에 등장하는 ' 까지 모두 다 문자처리가 되어 빨간색이 입혀집니다.
보기에는 불편해도 코드가 돌아가는데 문제가 없어서 지금까지는 그냥 쓰고 있었는데 막상 해결책을 찾아보니 마땅한 해결책이 검색되지가 않네요.
혹시 해결책 알고 계신 분이 계신지요?
Forums:
vim을 업그레이드 해보시면 어떨까요?
vim 8.1 버전에선 문제없이 출력되는 것을 볼 수 있습니다.
제가 root 권한을 받을 수가 없는 상황인데요,
찾아보니
yum install vim-enhanced
와 같이 입력해서 최신버전을 받을 수 있는 것 같은데, 이게 root 권한이 필요하네요.
연구실 서버 root권한을 얻어서 잘못 입력했다가 뭔가가 꼬여버릴까바 웬만하면 제 로컬 디렉토리에만 설치를 해 보고 싶은데, 혹시 방법을 아시나요?
root 가 아니시면 패키지 설치는 ... (도리도리)
문법이 강조되어 색상이 바뀌어 보이신다면, 이미 vim-enhanced 는 설치되어 있으실 겁니다. (vim-enhanced 는 vim 자체이기도 하니까요.)
syntax highlight 자체의 문제이기도 하니, 최신의 fortran.vim 을 설치해보시면 어떨까요?
https://github.com/vim/vim/blob/master/runtime/syntax/fortran.vim
위의 파일을 ~/.vim/after/indent 에 저장하시고( https://www.vim.org/scripts/script.php?script_id=2299 참조 ) 실행해보시면 될 것 같습니다.
그리고 vim 버전이 어떻게 되시나요? CentOS 6 를 쓰고 계신건가요?
음 ..
작은 따옴표 사이의 문자열을 파싱하기 때문에, c 를 주석으로 인식하지 않는다면..
계속해서 같은 문제가 발생할 것으로 보입니다.
아래분 의견대로 c 대신 ! 를 쓰거나, fortran.vim 에 c 를 주석으로 인식하도록 수정하면 될 것 같습니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
fortran.vim 파일이 없길래
fortran.vim 파일이 없길래
.vim/after/indent/
이 디렉토리들을 만들어서 그 안에 fortran.vim 을 만들어서 말씀해주신
- syn match fortranComment excludenl "!.*$" contains=@fortranCommentGroup,@spell
+ syn match fortranComment excludenl "^[!c].*$" contains=@fortranCommentGroup,@spell
을 입력해봤는데 별 다른 변화가 없네요 ㅠ.ㅠ
사실 색이 어떻게 나오니 하는건 매우 부수적인 거라서 이후에 시간여유가 좀 더 생기면 fortran.vim 등을 공부해서 기초를 갖추고 질문을 해야 답변해주시는 분들의 조언을 제대로 이해하고 적용할 수 있을 것 같습니다. 환경설정에 대한 기초가 없으니 많은 분들이 친절하게 답변해주셨는데 그걸 제가 제대로 써먹질 못하네요 ㅜㅜ
친절한 답글 감사드립니다!
음 ..
앞에 - 와 + 는 diff 의 의미와 마찬가지로..
- 의 내용을 가진 라인을 삭제하고 대신에 + 가 있는 라인의 내용으로 교체하라는 뜻입니다.
vim 과 같이 패키징 되어 있는 syntax 파일들은..
/usr/share/vim/vim80/syntax/fortran.vim 과 같이 해당 vim 버전 아래 syntax 디렉토리에 있습니다.
vim 에서 :scriptname 을 입력하시면, 로드된 파일들의 목록을 확인할 수 있습니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
포트란에 c로 시작하는 키워드가 있기 때문에, 이걸
포트란에 c로 시작하는 키워드가 있기 때문에, 이걸 고려해서 조금 수정하면 좋을 거 같습니다.
컬럼 0이 C 또는 c이고, 컬럼 1이 공백이면 ... 식의 조건으로요.
음 ..
아 그렇군요. 사실 포트란은 잘 몰라서 그냥 fortran.vim 에 있는 걸 살짝 가져왔습니다.
fortran_fixed_source 가 1 이면 fortranComment 가 "^[!c*].*$" 와 같이 정의되는데..
조건문 밖에서 그냥 fortranComment 를 다시 한 번 더 정의를 하더라구요.
두 번째 fortranComment 가 else ~ endif 사이로 들어가야 하는게 아닐까 싶기도 한데..
좀 아시는 분들이 의견 주시면 좋을 것 같네요.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
vim --version을 치면
$ vim --version
을 입력하면
VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Feb 15 2011 05:27:32)
라는 메세지가 뜹니다.
말씀해주신 fortran.vim 파일을 보면 뭔가 선행해서 올바른 디렉토리에 설치해둬야 하는 파일이 있는 것 같은데, 그 파일이 있다는 링크를 들어가면 http forbidden 과 같은 메시지가 뜨면서 접속이 되질 않네요.
급한 문제도 아니고, 매우 부수적인 문제인데 생각보다 시간이 많이걸리네요...ㅋㅋㅋ
기본적인 fortran.vim, 혹은 vim 환경설정에대해 좀 더 스스로 공부해본 다음에 다시 질문올리도록 하겠습니다. 답변 감사합니다!
헛... 7.2...
syntax 관련 룰이라 ymir 님께서 말씀해주신 것처럼 syntax rule 만 변경하면 될 것 같습니다.
7.4.1099 로 테스트 해봐도 괜찮던데... 음... 아쉽네요.
.vimrc 파일에 다음 줄을 넣어 보셔요.
.vimrc 파일에 다음 줄을 넣어 보셔요.
세벌 https://sebuls.blogspot.kr/
그렇게하면 전체적인 문법 컬러링이 다 사라지지 않나요??
위와 같이 ' 사이의 문자들이 전부 다 똑같은 색으로 컬러링되는 문제를 해결하고 싶어서요 ㅜㅜ
대충 살펴보았는데 c 로 주석처리하면 예전 문법으로
대충 살펴보았는데 c 로 주석처리하면 예전 문법으로 인식하는 거 같습니다.
c 를 ! 로 빠꿔 보세요.
예시 코드들로 공부를 하는 중이라
지금 예전에 전문가(?) 분들이 짜 두신 코드들로 공부를 하는 중이라 c 로 표시되어 있는 주석들을 어떤 환경설정으로 일괄적으로 해결할 수 없을까 싶어 질문드렸던 것인데 쉽지 않네요ㅠㅠ (c 로 되어있어도 주석으로 인식하기는 합니다. 다만 '에 대한 색처리에서 다소 문제가 있을 뿐이죠)
모쪼록 친절한 답변 감사드립니다!
ymir님 글 참고했습니다.
ymir님 글 참고했습니다.
c로 시작하는 키워드는 따로 포트란 키워드로 제대로 인식하기 때문에 신경쓰지 않아도 될거 같습니다.
를 ~/.vimrc 파일에 추가해 줍니다.
와 감사합니다!!
이렇게 하니까 c로 시작하는 문장들도 코멘트로 제대로 표시를 해주네요. 감사합니다 ㅎㅎ
댓글 달기