Ubuntu で VIM を C++ 開発エディタとして設定する

Ubuntu で VIM を C++ 開発エディタとして設定する

1. 設定ファイルをユーザー環境にコピーし、新しい.vimフォルダを作成し、バンドルサブフォルダを作成します。

  • sudo cp /etc/vim/vimrc /home/wangy/.vimrc
  • sudo mkdir /home/wangy/.vim
  • sudo mkdir /home/wangy/.vim/bundle
  • sudo mkdir /home/wangy/.vim/bundle/vundle

バンドル構成ファイルは次のとおりです。

「追加された構成はここに配置されます。互換性がありません」が改善されました
ファイルタイプオフ "が必要です!
rtp+=~/.vim/bundle/vundle/ を設定します。
vundle#rc() を呼び出す
「Vundleに管理を任せましょう
" 必須!
バンドル 'gmarik/vundle'
「私のバンドルはこちら:
「
「githubのオリジナルリポジトリ
バンドル 'tpope/vim-fugitive'
バンドル 'Lokaltog/vim-easymotion'
バンドル 'rstacruz/sparkup'、{'rtp': 'vim/'}
'tpope/vim-rails.git' をバンドルする
" vim-scripts リポジトリ
バンドル「L9」
バンドル「FuzzyFinder」
「非 github リポジトリ
「 'git://git.wincent.com/command-t.git' をバンドルします
「バンドル 'https://github.com/scrooloose/nerdtree.git'
「…」
ファイルタイププラグインのインデントが " に必要です。
「
「簡単なヘルプ - 以下は vundle を使用するためのコマンドです」:BundleList - 構成されたバンドルを一覧表示します
" :BundleInstall(!) - バンドルをインストール(更新)
" :BundleSearch(!) foo - foo を検索(または最初にキャッシュを更新)
" :BundleClean(!) - 未使用のバンドルの削除を確認(または自動承認)
「
詳細については :h vundle を参照、FAQ については wiki を参照してください
" 注意: Bundle コマンドの後のコメントは許可されません。

2. NERDTreeをインストールする

Bundle 'https://github.com/scrooloose/nerdtree.git'

使用方法は次のとおりです。

nmap <F5> :NERDTree<CR> ショートカットキー

:NERDTree オン

Ctrl+Wで左ウィンドウと右ウィンドウを切り替えることができます

p は上位ディレクトリ、P はルートディレクトリ

o はファイルまたはディレクトリを開き、q はプラグインを終了します

3. タグバーをインストールする

まずsudo apt-get install ctags install ctags

Bundle 'https://github.com/majutsushi/tagbar.git'

設定ファイルは次のとおりです。

" タグバー設定----------------
" ショートカットキー nmap <F4> :TagbarToggle<CR>
let g:tagbar_width = 20 " タグバーの幅、デフォルトは 20
左側に「let g:tagbar_left = 1」
右側に「g:tagbar_right = 1」と入力します
let NERDTreeIgnore=['\.pyc', '\.pyo', '\.swp', '\~'] " *.py[co]、*.sw p、*~を無視する

F4ショートカットキーを使用し、qで終了します

4. その他のプラグイン

バンドル 'https://github.com/scrooloose/nerdtree.git'
バンドル 'https://github.com/majutsushi/tagbar.git'
バンドル 'https://github.com/terryma/vim-multiple-cursors.git'
バンドル 'https://github.com/upsuper/vim-colorschemes.git'
バンドル 'https://github.com/vim-scripts/cppcomplete.git'

私の vim 設定には次の利点があります。

1. F5 キーを押して、C、C++、Java コードを直接コンパイルして実行し、シェル スクリプトを実行します。「F8」キーを押して、C および C++ コードをデバッグします。

2. ファイルヘッダーを自動的に挿入します。新しい C または C++ ソースファイルを作成すると、ファイル名、作成者、連絡先情報、作成時間などのヘッダーが自動的に挿入されます。読者は必要に応じてこれを変更できます。

3. 「Ctrl + A」をすべて選択してコピーするショートカットキーにマップして、コードのコピーを容易にします。

4. 「F2」キーを押してコード内の空白行を直接削除します

5. 「F3」は現在のディレクトリのファイルを一覧表示し、ツリーファイルディレクトリを開くことができます

6.マウス選択と矢印キー移動をサポート

7. コードのハイライト、自動インデント、行番号の表示、ステータス行の表示

8. 自動補完するには「Ctrl + P」を押します

9. []、{}、()、"、"、' 'などはすべて自動的に補完されます

10. その他の機能 読者は以下の文書を研究することができる。

マップ <F9> :SaveInputData() を呼び出す<CR>
関数!SaveInputData()
 「tabnew」を実行します
 'normal "+gP' を実行
 実行 "w! /tmp/input_data"
終了関数
「カラースキームトルテ
「カラースキーム マーフィー
「カラースキーム砂漠 
「カラースキーム砂漠 
「カラースキーム エルフロード
カラースキーム ロン
「fencs=utf-8、ucs-bom、shift-jis、gb18030、gbk、gb2312、cp936 を設定します
"termencoding=utf-8 を設定する
「エンコードをutf-8に設定」
"ファイルエンコーディングをucs-bom、utf-8、cp936に設定します
"ファイルエンコーディングをutf-8に設定する
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 関連する「" ...
"set shortmess=atI " 起動時にウガンダの子供たちを支援するためのプロンプトを表示しない "winpos 5 5 " ウィンドウの位置を設定する "setlines=40 columns=155 " ウィンドウのサイズを設定する set go=" グラフィック ボタンを使用しない "color asmanian2 " 背景テーマを設定する "set guifont=Courier_New:h10:cANSI " フォントを設定する "syntax on " 構文の強調表示 autocmd InsertLeave * se nocul " 現在の行を明るい色で強調表示する autocmd InsertEnter * se cul " 現在の行を明るい色で強調表示する "set ruler " ルーラーを表示する set showcmd " 入力したコマンドを読みやすく表示する "set cmdheight=1 " コマンド ライン (ステータス ラインの下) の高さを 1 に設定する 
「set whichwrap+=<,>,h,l」は、バックスペースキーとカーソルキーが行の境界を越えることを許可します(非推奨) 
"set scrolloff=3" バッファの一番上と一番下に移動するときにカーソルを 3 行離します。set novisualbell "点滅しません (理解できません) 
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "ステータス ラインに表示される内容 set laststatus=1 " ステータス ラインの表示を開始 (1)、常にステータス ラインを表示 (2) 
set foldenable "折りたたみを有効にする set foldmethod=manual "手動で折りたたむ" set background=dark "黒の背景を使用する" set nocompatible "迷惑なvi一貫性モードを削除し、以前のバージョンのいくつかのバグと制限を回避する" バージョン>= 603の場合は中国語のヘルプを表示する
 helplang=cn を設定する
 エンコーディングをutf-8に設定
終了
「配色を設定する」 colorscheme murphy
"font"if (has("gui_running")) 
" guifont=Bitstream\ Vera\ Sans\ Mono\ 10 を設定します 
"終了 
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""新しいファイルのタイトル" ...
「新しい .c、.h、.sh、.java ファイルを作成し、ファイル ヘッダーを自動的に挿入します。autocmd BufNewFile *.cpp、*.[ch]、*.sh、*.java exec ":call SetTitle()" 
""関数 SetTitle を定義し、ファイル ヘッダー func SetTitle() を自動的に挿入します 
 ファイルタイプが .sh ファイルの場合、&filetype == 'sh' 
  setline(1,"\###########################################################################")を呼び出します。 
  call append(line("."), "\# ファイル名: ".expand("%")) を呼び出します。 
  append(line(".")+1, "\# Author: ma6174") を呼び出します。 
  呼び出し append(line(".")+2, "\# mail: [email protected]") 
  append(line(".")+3, "\# 作成時刻: ".strftime("%c")) を呼び出します 
  append(line(".")+4, "\##############################################################################") を呼び出します。 
  append(line(".")+5, "\#!/bin/bash") を呼び出します。 
  append(line(".")+6, "") を呼び出します。 
 それ以外 
  setline(1, "/********************************************************************************************") を呼び出します。 
  append(line("."), " > ファイル名: ".expand("%")) を呼び出します。 
  append(line(".")+1, " > 作者: ma6174") を呼び出します 
  呼び出し append(line(".")+2, " > メール: [email protected] ") 
  append(line(".")+3, " > 作成時刻: ".strftime("%c")) を呼び出します 
  append(line(".")+4, " *****************************************************************************************/") を呼び出します。 
  append(line(".")+5, "") を呼び出します。
 終了
 &filetype == 'cpp'の場合
  append(line(".")+6, "#include<iostream>") を呼び出します。
  append(line(".")+7, "using namespace std;") を呼び出します。
  append(line(".")+8, "") を呼び出します。
 終了
 &filetype == 'c'の場合
  append(line(".")+6, "#include<stdio.h>") を呼び出します。
  append(line(".")+7, "") を呼び出します。
 終了
 " &filetype == 'java' の場合
 " 呼び出し append(line(".")+6,"public class ".expand("%"))
 " 呼び出し append(line(".")+7,"")
 " 終了
 「新しいファイルを作成した後、ファイルの末尾に自動的に配置します autocmd BufNewFile * normal G
終了関数 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
「キーボード コマンド」" ...
nmap <リーダー>w :w!<cr>
nmap <リーダー>f :find<cr>
「すべてマップ選択+コピー Ctrl+A
マップ <CA> ggVGY
マップ! <CA> <Esc>ggVGY
マップ <F12> gg=G
選択状態で Ctrl+C を押すと vmap がコピーされます <Cc> "+y
「空白のラインノアマップに移動 <F2> :g/^\s*$/d<CR> 
"ファイルを比較 nnoremap <C-F2> :vert diffsplit 
「新しいタグマップを作成 <M-F2> :tabnew<CR> 
"現在のディレクトリのファイルマップを一覧表示します <F3> :tabnew .<CR> 
「ツリーファイルディレクトリマップを開く <C-F3> \be 
"C、C++ F5 キーを押してマップをコンパイルして実行します <F5> :call CompileRunGcc()<CR>
関数CompileRunGcc()
 実行 "w"
 &filetype == 'c'の場合
  "!g++ % -o %<" を実行します
  実行 "! ./%<"
 そうでない場合 &filetype == 'cpp'
  "!g++ % -o %<" を実行します
  実行 "! ./%<"
 そうでない場合 &filetype == 'java' 
  「!javac%」を実行します 
  "!java %<" を実行します
 そうでない場合 &filetype == 'sh'
  :!./%
 そうでない場合 &filetype == 'py'
  "!python %" を実行します
  "!python %<" を実行します
 終了
終了関数
"C、C++ デバッグ マップ <F8> :call Rungdb()<CR>
関数!Rungdb()
 実行 "w"
 "!g++ % -g -o %<" を実行します
 "!gdb ./%<" を実行します
終了関数
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
「実用的な設定」" ...
ファイルが変更されたときに自動的にロードするように設定する
" quickfix mode autocmd FileType c,cpp map <バッファ> <リーダー><スペース> :w<cr>:make<cr>
"コード補完設定 completeopt=preview,menu 
「プラグインファイルタイププラグインを許可する
「共有クリップボードはクリップボード+=名前なしに設定されました 
「バックアップしない」設定 nobackup
"make run:set makeprg=g++\ -Wall\ \ %
「自動保存セット自動書き込み
set ruler " ステータスバーのルーラーを開く set cursorline " 現在の行を強調表示する set magic " マジックを設定する set guioptions-=T " ツールバーを非表示にする set guioptions-=m " メニューバーを非表示にする " set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
ステータス行に表示される情報を設定します。set foldcolumn=0
折り畳み方式をインデントに設定する 
折り畳みレベルを3に設定する 
set foldenable "折りたたみを開始" viのキーボードモードを使用せず、vim独自のset nocompatibleを使用する
「構文の強調表示は syntax=on に設定
「入力エラープロンプトサウンドセットを削除するnoeb
保存されていないファイルや読み取り専用ファイルを処理する場合は、確認ポップアップが表示されます。
" 自動インデント設定 autoindent
設定する
" タブキーの幅を tabstop=4 に設定
「統一インデントは4
ソフトタブストップを4に設定
シフト幅を4に設定
" タブの代わりにスペースを使用しない場合は noexpandtab を設定してください
" 行と段落の先頭にタブを使用するには、smarttab を設定します
「表示行番号設定番号
「履歴レコード番号設定 history=1000
「一時ファイルの生成を無効にするにはnobackupを設定してください
スワップファイルなしを設定する
「大文字と小文字を無視して検索する ignorecase を設定する
「文字ごとに検索するハイライトセットhlsearch
インクサーチを設定する
「gdefaultインラインセットを置換
「エンコード設定はenc=utf-8に設定しました
fencs=utf-8、ucs-bom、shift-jis、gb18030、gbk、gb2312、cp936 を設定します
「言語設定はlangmenu=zh_CN.UTF-8に設定されています
helplang=cn を設定する
「ステータス ラインには、表示されている内容が表示されます (ファイルの種類とデコードを含む)」
"statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} を設定します
"set statusline=[%F]%y%r%m%*%=[行:%l/%L,列:%c][%p%%]
「常にステータス行を表示する」は laststatus=2 に設定します
" コマンドラインの高さ(ステータス行の下)。デフォルトは 1 ですが、ここでは 2 です。
cmdheight=2 に設定
" ファイルタイプを検出する
" ファイルタイププラグインをロード
" 特定のファイルタイプに対応するインデントファイルをロードします。filetype indent on
"グローバル変数を保存するには、viminfo+= を設定してください。"
" 次の記号を含む単語は改行で区切らないでください。iskeyword+=_,$,@,%,#,- を設定します。
文字間に挿入されるピクセル行の数をlinespace=0に設定します
" 拡張モードでのコマンドラインの自動補完はワイルドメニューを設定します
" バックスペースキーでインデント、終了、開始などを処理できるようにします。通常は backspace=2 に設定します。
" バックスペースキーとカーソルキーが行の境界を越えることを許可するには、whichwrap+=<,>,h,l を設定します。
「バッファ内のどこでもマウスを使用できます(Officeのワークスペースでマウスをダブルクリックするのと同様です)
マウスをaに設定
選択を排他的に設定する
selectmode=マウス、キーを設定します
" コマンドコマンドを使用して、ファイルのどの行が変更されたかを確認します。set report=0
" 読みやすくするために分割ウィンドウ間に空白を表示します。fillchars=vert:\ ,stl:\ ,stlnc:\ を設定します。
「一致する括弧を強調表示する showmatch を設定する
対応する括弧をハイライト表示する時間(10分の1秒単位)
マッチタイムを1に設定
「カーソルがバッファの一番上と一番下に移動すると、3行の距離を保つようにscrolloff=3を設定します。
" Cプログラムに自動インデントを提供するには、smartindentを設定します
「通常の txt ファイルをハイライト表示します (txt.vim スクリプトが必要です)」
au BufRead、BufNewFile * ファイルタイプを txt に設定する
「オートコンプリート: inoremap ( ()<ESC>i
:inoremap ) <cr>=ClosePair(')')<CR>
":inoremap { {<CR>} ...
":inoremap } <cr>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <cr>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
関数! ClosePair(char)
 getline('.')[col('.') - 1] == a:charの場合
  "\<右>" を返します
 それ以外
  戻り値:char
 終了
終了関数
ファイルタイププラグインのインデントオン 
「ファイルタイプの検出をオンにし、スマート補完を使用するにはこの文を追加してください。set completeopt=longest,menu
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"NERDtee は NERDChristmasTree=1 を設定します
NERDTreeAutoCenter=1 とします
NERDTreeBookmarksFile=$VIM.'\Data\NerdBookmarks.txt' とします。
NERDTreeMouseMode=2 とします
NERDTreeShowBookmarks=1 とします
NERDTreeShowFiles=1 とします
NERDTreeShowHidden=1 とします
NERDTreeShowLineNumbers=1 とします
NERDTreeWinPos='left' とします
NERDTreeWinSize=31 とします
nnoremap f :NERDTreeToggle
マップ <F7> :NERDTree<CR>

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Ubuntu 16.04.4LTS に mininet をインストールする際に発生する問題と解決策
  • Ubuntu で G++ を使用して CPP ファイルをコンパイルする
  • 開発環境にUbuntu 16をインストール後の初期設定
  • Ubuntu ターミナル マルチウィンドウ 分割画面 ターミネーター
  • Ubuntu 16.04 で PostgreSQL の起動を設定する方法
  • Ubuntu Linux に Git と GitHub をインストールして使用する
  • Ubuntu 16.04はvimとpython3の開発環境を作成します
  • フォアマン Ubuntu16 クイックインストール
  • Ubuntu 18にNvidiaドライバーをインストールして、黒い画面を解決し、解像度の問題を解決する
  • Ubuntu で PHP5 と PHP7 のデュアルバージョンをサポートするシンプルな実装
  • Ubuntu 16.04 にソースコードから Mininet をインストールする

<<:  Vue シングルページ アプリケーションで Markdown レンダリングを実装する

>>:  Homebrewを使用してMacにMySQLをインストールするときにログインできない問題を解決する

推薦する

Nginx で https をアップグレードする方法

購入証明書Alibaba CloudのCloud Shield証明書サービスから購入できます。証明書...

Nginx+Keepalived でデュアルマシン マスターとバックアップを実装する方法

序文まず、高性能サーバーの高可用性またはホットスタンバイソリューションである Keepalived ...

SNMP4J サーバー接続タイムアウト問題の解決策

弊社のネットワーク管理センターは管理センター兼サーバーとして機能します!各管理対象デバイスは、TCP...

ソケット '/tmp/mysql.sock' 経由でローカル MySQL に接続できない解決策

エラーメッセージ:エラー 2002: ソケット '/tmp/mysql.sock' ...

jsはユーザーのページ操作を記憶するためにクッキーを使用します

序文開発プロセスでは、ブラウザレベルでユーザーが実行した操作を記憶するなど、同様の要件に遭遇すること...

MySQL 最適化のケーススタディ

1. 背景Youzan の各 OLTP データベース インスタンスには、実行時間が特定のしきい値を超...

MySQLトリガートリガー例の詳細な説明

目次トリガーとは何かトリガーを作成する表は次のようになります。さらにいくつかの単語を挙げます。制限と...

JavaScript の矢印関数と通常の関数の違いの詳細な説明

この記事では、JavaScriptにおけるアロー関数と通常の関数の違いについて解説します。具体的な内...

Linux における $ 記号の基本的な使い方のまとめ

Linuxバージョン: CentOS 7 [root@azfdbdfsdf230lqdg1ba91 ...

Vueのリストレンダリングの詳細な説明

目次1. v-for: 配列の内容を走査する(よく使われる) 2. v-for: オブジェクトのプロ...

Ubuntu 16.04.4LTS に mininet をインストールする際に発生する問題と解決策

ミニネットMininet は軽量のソフトウェア定義ネットワークおよびテスト プラットフォームです。軽...

docker cp ファイルをコピーしてコンテナに入る

実行中のコンテナに入る # コンテナに入り、新しいターミナルを開きます# docker exec -...

Nginx ロケーション ディレクティブ URI マッチング ルールの詳細な概要

1. はじめにロケーション命令は、http モジュールのコア構成です。事前に定義された URL マッ...

CentOS 8 に MySql をインストールしてリモート接続を許可する方法

ダウンロードしてインストールします。まず、システムに MySQL または MariaDB があるかど...

一般的な XHTML タグの使用方法の紹介

XHTML には多くのタグがありますが、頻繁に使用されるのはごくわずかであり、習得する必要があるのは...