🛠️

Ubuntu22.04環境でvimを用いたC++コーディング環境構築

2022/11/10に公開約3,100字

Ubuntu22.04環境でvimを用いたC++コーディング環境構築

はじめに

対象者

この記事は以下の条件に当てはまるユーザ向け記事です。

  • vimの操作方法を知っている
  • Ubuntu22.04LTS環境を準備済み

目標

以下の目的を達成することを本記事の目標とします。

  • vimのコーディング環境を整える
  • vimでC++のコーディング補完を行える
  • C++のコンパイル&実行を可能にする

環境構築の流れ

  1. 要求パッケージのインストール
  2. vimプラグインインストール
  3. vimの環境設定

要求パッケージのインストール

update & upgrade

まずは、updateとupgradeを行いましょう。

コマンドライン
sudo apt update && sudo apt upgrade -y

パッケージのインストール

コマンドライン
sudo apt install -y build-essential cmake vim-nox python3-dev mono-complete golang nodejs openjdk-17-jdk openjdk-17-jre npm 

build-essential は C++の開発に必要なビルドツールの集合です。
その他のパッケージは、後述するvimプラグインで要求されるものです。

vim環境構築

vimrcの作成

vimの設定ファイルである .vimrcをホームディレクトリに作成します。

コマンドライン
touch ~/.vimrc

vimの環境設定は、このファイルを編集して行います。

インストール:プラグインマネージャ

まずはvimのプラグインマネージャであるVim Plugをインストールしていきます。

コマンドライン
curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

その後、.vimrcに以下をコピペして保存します。

.vimrc
call plug#begin('~/.vim/plugged')
"ここにインストールするプラグインを書き込んでいく
call plug#end()

以降、プラグイン情報を書き込むというのは、
「"ここにインストールするプラグインを書き込んでいく」 の下に情報を書き込むことを指します。

インストール:コード補完

vimでコード補完を行ってくれるYouCompleteMeをインストールします。
以下のプラグイン情報を書き込んでください

.vimrc
Plug 'ycm-core/YouCompleteMe'

その後、vimをいったん閉じて、再度.vimrcを開いて以下のコマンドを打ち込みます。

vimコマンド
:PlugInstall

インストールが終わったら、YouCompleteMeの設定のため以下のコマンドを実行します。

コマンドライン
cd ~/.vim/plugged/YouCompleteMe
python3 install.py --all

そして、YouCompleteMeの外部設定ファイルをダウンロードします。

コマンドライン
cd ~/.vim/
wget ~/.vim/ https://raw.githubusercontent.com/ycm-core/ycmd/66030cd94299114ae316796f3cad181cac8a007c/.ycm_extra_conf.py

.vimrcの編集

.vimrcに以下の設定を追記していきます。
コメントに意味を書いていますので、好みに合わせて編集を行いましょう。

.vimrc
" バックアップファイルを作らない
set nobackup

" スワップファイルを作らない
set noswapfile

"インデントをスペース4つに
set tabstop=4
set shiftwidth=4

" エンコーディング
set encoding=utf-8
scriptencoding utf-8

"jキーを二度押しでESCキー
inoremap <silent> jj <Esc>
inoremap <silent> っj <ESC>

"行番号を表示
set number

" カーソルを棒状に
set cursorline

"オートコンプリート使用時のドロップダウン・ウィンドウの削除
set completeopt-=preview

"書き込み時間診断を無効にする
let g:ycm_show_diagnostics_ui = 0

C++用のテンプレートを作成

拡張子が.cppであるファイルを作成したときに、テンプレートをコピペする設定を行います。
具体的には.cppファイルを作成すると以下のコードが書き込まれた状態でファイルを作成できます。

テンプレートテキスト
#include <bits/stdc++.h>
using namespace std;

int main() {
    return 0;
}

まずは、以下のコマンドを打ち込んで、テンプレート用フォルダと、c++テンプレートファイルを作成します。

コマンドライン
mkdir -p ~/.vim/template
vim ~/.vim/template/c++

その後、上記のテンプレートのテキストをコピペします。

あとは、.vimrcに以下を追記すれば完了です。

.vimrc
autocmd BufNewFile ~/*.cpp :0r ~/.vim/template/c++

適当に.cppファイルを作成してください。テンプレートが書き込まれていると思います。

C++のコンパイル&実行

以下のコマンドでコンパイル

コマンドライン
g++ {ファイル名}.cpp

実行ファイルの実行

コマンドライン
./a.out

おすすめプラグイン

括弧補完機能Auto-pairs

インデントに合わせて括弧を入れてくれたり、対応する括弧をハイライトしてくれたりします。

Plug 'jiangmiao/auto-pairs'

Discussion

ログインするとコメントできます