firewalld 백엔드가 Cent OS 8 에서는 nftables 이고 이것이 도커와 충돌. iptables 로 수정하자.
2020년 10월 6일 화요일
2020년 6월 15일 월요일
ssh를 통한 X forwarding
서버 측에 다음 패키지 필요
- mesa-libGL - 없으면 크래쉬
- mesa-libGLw - 없으면 swrast 에러
- xorg-x11-xauth
클라이언트 측에 다음 조치 필요
- .bashrc 에 `export DISPLAY=localhost:0.0` 추가
- `xauth generate $DISPLAY .` 실행.
2020년 5월 26일 화요일
선호하는 이맥스 설정들
(setq default-input-method "korean-hangul3")
(column-number-mode t)
(show-paren-mode t) (setq read-process-output-max (* 16 1024 1024))
(setq gc-cons-threshold most-positive-fixnum)
2020년 4월 17일 금요일
emacs dart-mode 설정 구문
(setq dart-server-format-on-save t)
(defun isr-dart-mode-hook ()
(dart-server)
(lsp)
(local-set-key (kbd "M-*") 'pop-tag-mark))
(add-hook 'dart-mode-hook 'isr-dart-mode-hook)
(defun isr-dart-mode-hook ()
(dart-server)
(lsp)
(local-set-key (kbd "M-*") 'pop-tag-mark))
(add-hook 'dart-mode-hook 'isr-dart-mode-hook)
2020년 3월 26일 목요일
gopls 이후의 emacs 설정
gocode는 결국 gopls로 대체. gopls 시대의 emacs 설정은
(defun isr-go-mode-hook ()
(lsp-deferred)
(setq lsp-idle-delay 0.500)
(add-hook 'before-save-hook #'lsp-format-buffer t t)
(add-hook 'before-save-hook #'lsp-organize-imports t t)
(local-set-key (kbd "M-*") 'pop-tag-mark)
(require 'yasnippet)
(yas-minor-mode)
(hl-todo-mode))
(add-hook 'go-mode-hook 'isr-go-mode-hook)
2019년 10월 9일 수요일
ssh 로컬 터널링 메모
-L port:host:hostport 형태로 쓸 때,
- port - 로컬에서의 포트
- host - 이 터널링을 이용할 때 호스트가 접속할 주소
- hostport - 이 터널링을 이용할 때 호스트가 접속할 포트
ssh -L 80:127.0.0.1:8080
로 터널링을 성립시킨 후
localhost:80 으로 접속하면,
server address 로 접속한 서버가 127.0.0.1:8080으로 접속한다.
2019년 4월 23일 화요일
emacs Go언어 세팅
저는 IDE를 싫어하는 사람은 전혀 아닌데, Go 언어는 CLI 툴이 잘 되어 있어서 emacs로 거의 IDE에 준하는 작업흐름을 세팅할 수가 있습니다. 저는 대략 다음의 기능을 세팅합니다.
go-mode를 설치합니다. 설치한 후 저장시에 자동으로 gofmt가 설정되도록 go-mode-hook에 다음과 같은 내용을 포함되도록 합니다.
문서 마지막에 isr-go-mode-hook 전체가 드러나는 예제가 있습니다. 여기서 조각조각 COPY&PASTE 하느라 고생할 필요는 없습니다.
emacs에서 go-guru, go-rename 패키지를 설치합니다. 다음의 단축기 설정을 .emacs 파일에 추가합니다. Alt+'.'로 이동, Alt+Shift+*로 되돌아오기입니다. 문서 마지막에 .emacs 파일 전체를 실을 것이므로 여기까지 읽고 따라할 필요는 없습니다.
emacs의 flycheck-golangcli-lint 를 package-install 로 설치합니다. 그 후 아래의 내용을 .emacs에 추가합니다. 역시 아직 따라하지 않아도 됩니다.
백엔드로 gocode를 사용하므로 설치합니다.
이맥스에서 package-install로 company-go 플러그인을 설치합니다. .emacs에 추가합니다.
- 기본적인 신택스 하일라이팅
- 코드 포매팅 (저장시에 gofmt 실행)
- Go to definition 점프
- 실시간 linting
- 자동완성
- 심볼 하일라이팅
go-mode 신택스 하일라이팅 + 코드 포매팅
go-mode를 깔면 됩니다. 패키지를 깔기 위해서 .emacs 파일에 다음 구절이 포함되어야 합니다.
(require 'package)
(add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/"))
go-mode를 설치합니다. 설치한 후 저장시에 자동으로 gofmt가 설정되도록 go-mode-hook에 다음과 같은 내용을 포함되도록 합니다.
(defun isr-go-mode-hook ()
...
;; Call Gofmt before saving
(add-hook 'before-save-hook 'gofmt-before-save)
...
(add-hook 'go-mode-hook 'isr-go-mode-hook)
문서 마지막에 isr-go-mode-hook 전체가 드러나는 예제가 있습니다. 여기서 조각조각 COPY&PASTE 하느라 고생할 필요는 없습니다.
Go to definition 점프, 심볼 하일라이팅, rename
한동안 정의/선언 지점으로 점프하는 백엔드 툴로 godef가 인기 있었습니다. 그러나 지금은 훨씬 강력한 기능을 많이 가진 go-guru에서도 이 기능을 제공하므로 godef를 굳이 깔아야 할 이유는 없다고 생각합니다. 아래는 go-guru로 정의/선언지점으로 점프하는 기능을 설정하는 방법입니다.
go get 으로 go-guru를 설치합니다. 하는 김에 다른 유용한 툴도 설치합니다.
go get -u golang.org/x/tools/cmd/...
emacs에서 go-guru, go-rename 패키지를 설치합니다. 다음의 단축기 설정을 .emacs 파일에 추가합니다. Alt+'.'로 이동, Alt+Shift+*로 되돌아오기입니다. 문서 마지막에 .emacs 파일 전체를 실을 것이므로 여기까지 읽고 따라할 필요는 없습니다.
(defun isr-go-mode-hook ()
...
;; Godef jump key binding
(local-set-key (kbd "M-.") 'go-guru-definition)
(local-set-key (kbd "M-*") 'pop-tag-mark))
;; highlight identifiers
(go-guru-hl-identifier-mode))
...
(add-hook 'go-mode-hook 'isr-go-mode-hook)
flycheck (실시간 문법 체크)
golangci-lint 를 설치합니다.
go get -u github.com/golangci/golangci-lint/cmd/golangci-lint
(defun isr-go-mode-hook ()
...
;; flycheck
(flycheck-mode)
...
(add-hook 'go-mode-hook 'isr-go-mode-hook)
compnay-go (자동완성 기능)
백엔드로 gocode를 사용하므로 설치합니다.
go get -u github.com/nsf/gocode
이맥스에서 package-install로 company-go 플러그인을 설치합니다. .emacs에 추가합니다.
(defun isr-go-mode-hook ()
...
(require 'company)
(require 'company-go)
(set (make-local-variable 'company-backends) '(company-go))
(company-mode)
...
(add-hook 'go-mode-hook 'isr-go-mode-hook)
전체 .emacs 파일을 모으면 다음과 같습니다.
(require 'package)
(add-to-list 'package-archives
'("melpa" . "https://www.melpa.org/packages/"))
(defun isr-go-mode-hook ()
;; flycheck
(flycheck-mode)
;; Call Gofmt before saving
(add-hook 'before-save-hook 'gofmt-before-save)
;; Godef jump key binding
(local-set-key (kbd "M-.") 'go-guru-definition)
(local-set-key (kbd "M-*") 'pop-tag-mark)
;; company-go
(require 'company)
(require 'company-go)
(set (make-local-variable 'company-backends) '(company-go))
(company-mode)
;; highlight identifiers
(go-guru-hl-identifier-mode))
(add-hook 'go-mode-hook 'isr-go-mode-hook)
피드 구독하기:
글 (Atom)