emacs에 현대적인 에디터에 지지 않는 보완 기능을...(2)
지난번에 계속해서 emacs의 보완 기능에 대해 써 갑니다.
company
코딩하는 동안 보완을 위해 company를 사용합니다.
MSYS2에서 개발 빌드를하고 있으므로 아래 명령을 사용하여 cmake를 설치합시다.
MSYS2에 emacs를 도입하는 것에 대한 이전의 기사가 도움이 될 수 있습니다.
MSYS2에서 이맥스 생활 시작
htps : // 코 m / 리오 18020 / ms / 2에 f7 아 4973384463d554에
pasman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-i686-cmake
clan 설치
pasman -S mingw-w64-x86_64-clang
pacman -S mingw-w64-i686-clang
irony 설치
M-X packge-install [RET] irony, M-X packge-install [RET] company-irony
로 irony를 설치합시다.
irony란 C/C++로 코딩할 때 보완 등을 할 때 필요합니다. 설치 후 init.el에 다음을 추가합니다.
(use-package irony
:defer t
:commands irony-mode
:init
(add-hook 'c-mode-hook 'irony-mode)
(add-hook 'c++-mode-hook 'irony-mode)
:config
;; C言語用にコンパイルオプションを設定する.
(add-hook 'c-mode-hook
'(lambda ()
(setq irony-additional-clang-options '("-std=c11" "-Wall" "-Wextra"))))
;; C++言語用にコンパイルオプションを設定する.
(add-hook 'c++-mode-hook
'(lambda ()
(setq irony-additional-clang-options '("-std=c++14" "-Wall" "-Wextra"))))
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
;; Windows環境でパフォーマンスを落とす要因を回避.
(when (boundp 'w32-pipe-read-delay)
(setq w32-pipe-read-delay 0))
;; バッファサイズ設定(default:4KB -> 64KB)
(when (boundp 'w32-pipe-buffer-size)
(setq irony-server-w32-pipe-buffer-size (* 64 1024)))
)
(use-package company-irony
:defer t
:config
;; companyの補完のバックエンドにironyを使用する.
(add-to-list 'company-backends '(company-irony-c-headers company-irony))
)
그 외, C++로 써 갈 때에 넣어 두는 & 설정해 두면 편리한 설정을 아래에 써 둡니다.
(require 'cc-mode)
;; c-modeやc++-modeなどcc-modeベースのモード共通の設定
(add-hook
'c-mode-common-hook
(lambda ()
;; k&rスタイルをベースにする
(c-set-style "k&r")
;; スペースでインデントをする
(setq indent-tabs-mode nil)
;; インデント幅を2にする
(setq c-basic-offset 2)
;; 自動改行(auto-new-line)と
;; 連続する空白の一括削除(hungry-delete)を
;; 有効にする
(c-toggle-auto-hungry-state 1)
;; CamelCaseの語でも単語単位に分解して編集する
;; GtkWindow => Gtk Window
;; EmacsFrameClass => Emacs Frame Class
;; NSGraphicsContext => NS Graphics Context
(subword-mode 1)
))
(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))
;; undo-tree
(require 'undo-tree)
(global-undo-tree-mode)
;; flycheck
(require 'package)
(global-flycheck-mode)
(require 'google-c-style)
(defun cc-mode-init ()
(google-set-c-style)
(setq indent-tabs-mode t)
(setq c-basic-offset 4)
(c-set-offset 'case-label 0)
)
이상의 설정으로부터 실현된 보완의 모습을, 「emacs에 모던한 에디터에 지지 않는 보완 기능을...(1)」로 기술한 같은 내용을 쓰면서 확인해 봅시다. QtCreator와 비교됩니다.
h tps:// 퀵했다. 작은 m/리오 18020/ MS/57 아바 C4 그림 df9b426cf1
include의 기술은 보완되지 않지만. . .
보완이 나오는 것이 조금 느린 것과 Ctrl+Alt+i를 입력하지 않으면 보완 후보가 나오지 않는 것도 불만이다.
QtCreator를 넘을 수 있어요. . .
아직도 수행이 필요합니다. 이하의 서적 등으로부터 정보를 조사하면서 키워 나가려고 한다.
좋은 것이 발견되면 기사도 갱신해 갑니다.
pasman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-i686-cmake
pasman -S mingw-w64-x86_64-clang
pacman -S mingw-w64-i686-clang
irony 설치
M-X packge-install [RET] irony, M-X packge-install [RET] company-irony
로 irony를 설치합시다.
irony란 C/C++로 코딩할 때 보완 등을 할 때 필요합니다. 설치 후 init.el에 다음을 추가합니다.
(use-package irony
:defer t
:commands irony-mode
:init
(add-hook 'c-mode-hook 'irony-mode)
(add-hook 'c++-mode-hook 'irony-mode)
:config
;; C言語用にコンパイルオプションを設定する.
(add-hook 'c-mode-hook
'(lambda ()
(setq irony-additional-clang-options '("-std=c11" "-Wall" "-Wextra"))))
;; C++言語用にコンパイルオプションを設定する.
(add-hook 'c++-mode-hook
'(lambda ()
(setq irony-additional-clang-options '("-std=c++14" "-Wall" "-Wextra"))))
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
;; Windows環境でパフォーマンスを落とす要因を回避.
(when (boundp 'w32-pipe-read-delay)
(setq w32-pipe-read-delay 0))
;; バッファサイズ設定(default:4KB -> 64KB)
(when (boundp 'w32-pipe-buffer-size)
(setq irony-server-w32-pipe-buffer-size (* 64 1024)))
)
(use-package company-irony
:defer t
:config
;; companyの補完のバックエンドにironyを使用する.
(add-to-list 'company-backends '(company-irony-c-headers company-irony))
)
그 외, C++로 써 갈 때에 넣어 두는 & 설정해 두면 편리한 설정을 아래에 써 둡니다.
(require 'cc-mode)
;; c-modeやc++-modeなどcc-modeベースのモード共通の設定
(add-hook
'c-mode-common-hook
(lambda ()
;; k&rスタイルをベースにする
(c-set-style "k&r")
;; スペースでインデントをする
(setq indent-tabs-mode nil)
;; インデント幅を2にする
(setq c-basic-offset 2)
;; 自動改行(auto-new-line)と
;; 連続する空白の一括削除(hungry-delete)を
;; 有効にする
(c-toggle-auto-hungry-state 1)
;; CamelCaseの語でも単語単位に分解して編集する
;; GtkWindow => Gtk Window
;; EmacsFrameClass => Emacs Frame Class
;; NSGraphicsContext => NS Graphics Context
(subword-mode 1)
))
(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))
;; undo-tree
(require 'undo-tree)
(global-undo-tree-mode)
;; flycheck
(require 'package)
(global-flycheck-mode)
(require 'google-c-style)
(defun cc-mode-init ()
(google-set-c-style)
(setq indent-tabs-mode t)
(setq c-basic-offset 4)
(c-set-offset 'case-label 0)
)
이상의 설정으로부터 실현된 보완의 모습을, 「emacs에 모던한 에디터에 지지 않는 보완 기능을...(1)」로 기술한 같은 내용을 쓰면서 확인해 봅시다. QtCreator와 비교됩니다.
h tps:// 퀵했다. 작은 m/리오 18020/ MS/57 아바 C4 그림 df9b426cf1
include의 기술은 보완되지 않지만. . .
보완이 나오는 것이 조금 느린 것과 Ctrl+Alt+i를 입력하지 않으면 보완 후보가 나오지 않는 것도 불만이다.
QtCreator를 넘을 수 있어요. . .
아직도 수행이 필요합니다. 이하의 서적 등으로부터 정보를 조사하면서 키워 나가려고 한다.
좋은 것이 발견되면 기사도 갱신해 갑니다.
(use-package irony
:defer t
:commands irony-mode
:init
(add-hook 'c-mode-hook 'irony-mode)
(add-hook 'c++-mode-hook 'irony-mode)
:config
;; C言語用にコンパイルオプションを設定する.
(add-hook 'c-mode-hook
'(lambda ()
(setq irony-additional-clang-options '("-std=c11" "-Wall" "-Wextra"))))
;; C++言語用にコンパイルオプションを設定する.
(add-hook 'c++-mode-hook
'(lambda ()
(setq irony-additional-clang-options '("-std=c++14" "-Wall" "-Wextra"))))
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options)
;; Windows環境でパフォーマンスを落とす要因を回避.
(when (boundp 'w32-pipe-read-delay)
(setq w32-pipe-read-delay 0))
;; バッファサイズ設定(default:4KB -> 64KB)
(when (boundp 'w32-pipe-buffer-size)
(setq irony-server-w32-pipe-buffer-size (* 64 1024)))
)
(use-package company-irony
:defer t
:config
;; companyの補完のバックエンドにironyを使用する.
(add-to-list 'company-backends '(company-irony-c-headers company-irony))
)
(require 'cc-mode)
;; c-modeやc++-modeなどcc-modeベースのモード共通の設定
(add-hook
'c-mode-common-hook
(lambda ()
;; k&rスタイルをベースにする
(c-set-style "k&r")
;; スペースでインデントをする
(setq indent-tabs-mode nil)
;; インデント幅を2にする
(setq c-basic-offset 2)
;; 自動改行(auto-new-line)と
;; 連続する空白の一括削除(hungry-delete)を
;; 有効にする
(c-toggle-auto-hungry-state 1)
;; CamelCaseの語でも単語単位に分解して編集する
;; GtkWindow => Gtk Window
;; EmacsFrameClass => Emacs Frame Class
;; NSGraphicsContext => NS Graphics Context
(subword-mode 1)
))
(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))
;; undo-tree
(require 'undo-tree)
(global-undo-tree-mode)
;; flycheck
(require 'package)
(global-flycheck-mode)
(require 'google-c-style)
(defun cc-mode-init ()
(google-set-c-style)
(setq indent-tabs-mode t)
(setq c-basic-offset 4)
(c-set-offset 'case-label 0)
)
Reference
이 문제에 관하여(emacs에 현대적인 에디터에 지지 않는 보완 기능을...(2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/omooooori/items/12a3bdb44a2399d0aafe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)