Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

WindowsでC言語の勉強をしよう

$
0
0

はじめに

私が大学生になり学校の授業でC言語のプログラミングを学んでいますが、友達にvimをすすめたが複数部分で引っかかってしまったため引っかかったところと簡単な対策を書いていくために書いています。

tl;dr

最後のコピペって完成!

環境

  • Windows10
  • VisualStudio2019
  • neovim,v0.4.2
  • clang,v9.0.0
  • cmake,v3.14.3
  • python3.8.0
  • git

目標

開発者用コマンドプロンプト内でC言語を書いてサクッと実行する

必要なソフトのインストール

1 言わずもがななVisualStadio
2 他のソフトをまとめてインストールするためchocolateyをインストールする
Chocolatey
Chocolateyを使った環境構築の時のメモ
PowerShellを管理者権限で起動し下記のコマンドを入力する

PowerShellを管理者権限で起動するにはWindowsキーとxキーを同時に押しAを押すとできる

Set-ExecutionPolicyBypass-ScopeProcess-Force;iex((New-ObjectSystem.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

これの処理が終わるとPowerShell上でchoco install 〇〇などと言ったコマンドで簡単にソフトウェアをインストールすることができる

chocoinstallpython3neovimcmakellvmgit-y

このコマンドで必要なソフトのインストールが終わるのでPowerShellは終了しよう

neovimの文字コード設定

此処から先は先程インストールしたVisualStadioないにはいっているDeveloper Command Prompt for VS 2019を利用する
スタートメニュー内のVisualStadio2019のファイル内にあるためこれを選択してほしい
image.png

neovimは基本的にUTF-8という文字コードを使用するがwindows上ではべつのcp932という文字コードを使用するためそのままでは文字化けが発生してしまうなので
neovimでもcp932という設定にする必要がある
他の様々なサイトではneovimの設定ファイルは.connfigと書かれていたり
vimの設定ファイルの.vimを推奨している場合が多い
しかし、Windows上で使用する場合初期設定では$HOME\AppData\init.vimが使用されているためこちらを使うのが好ましい
まずは設定フォルダを作成するためにmkdir %APPDATA%\..\Local\nvimと入力をしよう
その後cd %APPDATA%\..\Local\nvimで今作成したフォルダに移動して
そしたらnvim init.vimと入力してneovimを起動しよう
まずは以下のような設定を行おう

letg:python3_host_prog='C:\Python38\python.exe'set fileencoding=cp932
set fileencodings=cp932,sjis,utf-8

これによってWindowsでneovimを利用したら基本的にはcp932がしようされもしもutf-8のファイルがあった場合でも読み込まれるというものになってます。

そのためこのDeveloper Command Prompt for VS 2019内においてnvim 〇〇.cとcl 〇〇.cそして〇〇の3つを繰り返してプログラムの学習ができるようになります。

設定について

ちょっとまってて

プラグインについて

neovim/vimには様々な人がプラグインを作成していてそれらを使用することでさらなる機能を得ることができます。
今回はdein.vimプラグイン管理ソフトを利用しないでインストールしていきたいと思います。

 おすすめプラグイン

vimdoc-ja

neovimのヘルプは基本的にすべて英語で書かれているためこのようなサイトに調べに来る人はとっても困るものですがこのプラグインはほとんどのヘルプを日本語に翻訳して置き換えれるものです

molokai

私の好きなカラースキームで暗めの色のやつ
インストールするだけでは反映されないので下記のようにinit.vimに追加する

init.vim
colorscheme molokai

deoplete.nvim neosnippet neosnippet-snippets

もうこの3つのファイルのためにこれを書いたと言ってもいいくらいのものである
これらのプラグインはすべて補完機能を拡張するためのプラグインである
基本的に補完機能自体は挿入モードでを押すことでできるがそれだけではないそれ以上の機能をくれるのがこれらのプラグインである
インストールするだけではこれらの本領は反映されないので下記のようにinit.vimに追加する

init.vim
letg:deoplete#enable_at_startup =1letg:deoplete#auto_complete_delay =0letg:deoplete#auto_complete_start_length =1letg:deoplete#enable_camel_case =0letg:deoplete#enable_ignore_case =0letg:deoplete#enable_refresh_always =0letg:deoplete#enable_smart_case =1letg:deoplete#file#enable_buffer_path =1letg:deoplete#max_list =10000
inoremap <expr><tab> pumvisible() ? "\<C-n>":      \ neosnippet#expandable_or_jumpable() ?
      \"\<Plug>(neosnippet_expand_or_jump)":"\<tab>"

imap <C-k><Plug>(neosnippet_expand_or_jump)smap<C-k><Plug>(neosnippet_expand_or_jump)
xmap <C-k><Plug>(neosnippet_expand_target)if has('conceal')set conceallevel=2 concealcursor=niv
endif

これらを追記することによってtabキーで補完するものを選びでそれらを展開することができるようになる

deoplete-clang neoinclude.vim

この2つのプラグインは上の3つのプラグインで拡張した補完機能にC言語のライブラリを追加するためのプラグインである
これらのプラグインはclangという先程インストールしたものを利用するため以下のようにinit.vimに追記する必要がある

init.vim
letg:deoplete#sources#clang#clang_header ='C:\Program Files\LLVM\lib\clang\'letg:deoplete#sources#clang#libclang_path ='C:\Program Files\LLVM\bin\libclang.dll'

 まとめ

以上のプラグインをすべて入れるのであればdein.tomlというファイルをinit.vimと同じフォルダに作成してください

dein.toml
[[plugins]]repo='vim-jp/vimdoc-ja.git'[[plugins]]repo='tomasr/molokai'[[plugins]]repo='Shougo/neosnippet-snippets'[[plugins]]repo='Shougo/deoplete.nvim'hook_source='''letg:deoplete#enable_at_startup=1letg:deoplete#auto_complete_delay=0letg:deoplete#auto_complete_start_length=1letg:deoplete#enable_camel_case=0letg:deoplete#enable_ignore_case=0letg:deoplete#enable_refresh_always=0letg:deoplete#enable_smart_case=1letg:deoplete#file#enable_buffer_path=1letg:deoplete#max_list=10000inoremap<expr><tab>pumvisible()?"\<C-n>":\neosnippet#expandable_or_jumpable() ?\"\<Plug>(neosnippet_expand_or_jump)":"\<tab>"'''on_i=1[[plugins]]repo='Shougo/neosnippet'hook_source='''imap<C-k><Plug>(neosnippet_expand_or_jump)smap<C-k><Plug>(neosnippet_expand_or_jump)xmap<C-k><Plug>(neosnippet_expand_target)ifhas('conceal')setconceallevel=2concealcursor=nivendif'''on_i=1on_ft=['snippet']depends=['neosnippet-snippets']#C言語の補完[[plugins]]repo='zchee/deoplete-clang'on_ft=['c','cpp','cmake','make'][[plugins]]repo='Shougo/neoinclude.vim'on_ft=['c','cpp']

またこれが以上のプラグインをすべて入れてプラグインの設定を追加したものです

init.vim
set fileencoding=cp932
set fileencodings=cp932,sjis,utf-8scriptencoding=utf-8letg:python3_host_prog='c:\Python38\python.exe'"プラグインのインストール"プラグインが実際にインストールされるディレクトリlets:dein_dir= expand('~\AppData\Local\nvim\dein')" dein.vim 本体lets:dein_repo_dir=s:dein_dir.'\repos\github.com\Shougo\dein.vim'" dein.vim がなければ github から落としてくるif&runtimepath !~# '\dein.vim'if!isdirectory(s:dein_repo_dir)
        execute '!git clone https://github.com/Shougo/dein.vim's:dein_repo_direndif
    execute 'set runtimepath^='.s:dein_repo_direndif" 設定開始if dein#load_state(s:dein_dir)call dein#begin(s:dein_dir)" プラグインリストを収めた TOML ファイルの場所letg:rc_dir= expand('~\AppData\Local\nvim\')lets:toml=g:rc_dir.'\dein.toml'" TOML を読み込み、キャッシュしておくcall dein#load_toml(s:toml,{'lazy':0})" 設定終了call dein#end()call dein#save_state()endif" もし、未インストールものものがあったらインストールif dein#check_install()call dein#install()endiffiletype plugin onletg:deoplete#sources#clang#clang_header ='C:\Program Files\LLVM\lib\clang\'letg:deoplete#sources#clang#libclang_path ='C:\Program Files\LLVM\bin\libclang.dll'

私の設定ファイルです良ければ参照してください


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>