VimでC++のプログラムを書く
前文
最近寂しい日が続いているので、何度もあきらめるほど始めさせられたVimのことを考えずにはいられません。冷たい理論やコマンドに飽きないようにするのは大変です。そこで、大好きなC++のプログラムを書くことから始める、タスク駆動型の学習方法を採用しようと思います〜。
設定ファイルの修正
最も原始的なvimでコードを書くのはまだ非常に不親切なので、まずvimの設定ファイルを変更してもう少し使いやすくする必要があります。
において
~
ディレクトリに
ls -a
という名前のファイルがあるかどうかを確認するために
.vimrc
これはvimの設定ファイルです。なければ自分で作ればいいのです。
設定ファイルの中身は、この記事の最後にある 付録 "vimの設定に詳しくない方は、そのままコピー&ペーストすることをお勧めします。(実際、私もそうやって他の人をコピーしていたので、プレッシャーは感じないでください)
Vimで初めてのC++プログラム
設定ファイルを変更した後、私たちのvimはずっと良くなり、C++プログラムを書き始めることができます。
$ vim hello.cpp
vimの編集モードで、vim上の最初のC++プログラムを入力します(hello worldは単なる慣習で、好きなものを入力できます)。
#include
using namespace std;
int main()
{
cout << "hello world!" << endl;
return 0;
}
ファイルを保存した後
g++
コマンドでコンパイルします。
$ g++ hello.cpp
コンパイルすると
a.out
というファイルがあり、これが実行ファイルです。
$ ls
a.out luogu_2249.cpp
最後に、コマンド
. /a.out
このファイルを実行すると、hello worldのコンソール出力が表示されます。
$ . /a.out
hello world!
さて、簡単なC++プログラミングにvimを使えるようになりましたが、このvimは基本的なニーズを満たすだけで、コードヒントもなく、全然ダメですね。後であきらめなければ、vimのプラグインをインストールする記事を更新してください。
付録
設定ファイルの全容は以下の通りです。
" Show line numbers
set number
" Show ruler
set ruler
" History
set history=1000
" Show the commands entered
set showcmd
" The status line is displayed
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
" start status display line 1, always display status line 2
set laststatus=2
" Syntax highlighting
syntax on
set fileencodings=utf-8,gb2312,gbk,cp936,latin-1
set fileencoding=utf-8
set termencoding=utf-8
set fileformat=unix
set encoding=utf-8
" color scheme
colorscheme desert
" Specify that the color scheme is 256 colors
set t_Co=256
set wildmenu
" Remove the vi consistency mode to avoid some bugs and limitations of the previous version and to solve the problem of backspace not working
set nocompatible
set backspace=indent,eol,start
set backspace=2
" Enable auto-alignment to apply the alignment format of the previous line to the next line
set autoindent
" Smart alignment based on the above format, useful for C-like writing
set smartindent
" vim disables automatic backup
set nobackup
set nowritebackup
set noswapfile
" Replace tabs with spaces
set expandtab
" Set the number of space characters for tab display, improve the tab indent value, the default is 8, now change to 4
set tabstop=4
" Uniform indent to 4, convenient to use backspace key after opening et, each backspace will delete X spaces
set softtabstop=4
" set auto indent to 4 characters, the length of space used for auto indent in the program
set shiftwidth=4
" set the help file to Chinese (need to install vimcdoc documentation)
set helplang=cn
" Show matching parentheses
set showmatch
" Indent the file and the number of tabs
au FileType html,python,vim,javascript setl shiftwidth=4
au FileType html,python,vim,javascript setl tabstop=4
au FileType java,php setl shiftwidth=4
au FileType java,php setl tabstop=4
" Highlight the searched string
set hlsearch
" Detect the file type
filetype on
filetype plugin on
filetype indent on
" C style indent
set cindent
set completeopt=longest,menu
" Function settings
" Remove input error sound
set noeb
" Auto-save
set autowrite
" Highlight the current line
set cursorline
" Highlight the current line
set cursorcolumn
" set cursor style to vertical bar
" Change cursor shape between insert and normal mode in iTerm2.app
if $TERM_PROGRAM =~ "iTerm"
let &t_SI = "\<Esc>]50;CursorShape=1\x7" " Vertical bar in insert mode
let &t_EI = "\<Esc>]50;CursorShape=0\x7" " Block in normal mode
endif
" Share clipboard
set clipboard+=unnamed
" Auto-load when files are changed
set autoread
" keep the top and bottom 3 lines apart
set scrolloff=3
IDEはいい匂いがしませんか?vimでXをインストールしますか?おい、自分の道を行けよ、他人に語らせろよ。
関連
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み] テスト
-
[解決済み】C++のストリームマニピュレータで固定幅のフィールドのテキストを中央揃えにする
-
[解決済み】ベースクラスが未定義
-
[解決済み] av_seek_frame の後に現在の AVFrame の連番を取得するには?
-
[解決済み] mallocです。*** オブジェクトに対するエラー: 解放されるポインタが割り当てられていない *** デバッグのために malloc_error_break にブレークポイントを設定します。
-
[解決済み] DeviceIoControlで送信したデータをDriver.cのcontrolFunctionで受信するには?IOCTL,Driver
-
[解決済み] SFML ビューとウィンドウの混同
-
[解決済み] コンパイル時に「"SDL.h" no such file or directory found」と表示される。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】CとC++の1LLと2LLとは何ですか?
-
[解決済み] C++でクラスオブジェクトのベクトルを作成する方法は?
-
[解決済み] こんなエラーが出るんです。"glibc detected"
-
[解決済み] self.object(python)と同等のC++版
-
[解決済み] メッセージボックスで変数を表示する c++
-
[解決済み] コンテナクラス シーケンス c++
-
[解決済み] InitGoogleLogging "は何をするものですか?
-
[解決済み] コンパイル時の非互換ライブラリのスキップ
-
[解決済み] "エラー:'abs'の呼び出しがあいまいです "の修正方法