キーマップ設定

基本的なKeymap設定

個人的にここ数年ずっと使っているKeymap設定を体が覚えてしまってるので、この設定がないと落ち着かない内容

設定ファイルは分割するという方針のもと

.confi/nvim/init/keymap.vim

を作成。 ここの内容は下記の通り

" KeyConfig
""Change <Leader>
let g:mapleader = ','

""Cursol move
set whichwrap=b,s,h,l,<,>,[,],~

nnoremap j gj
nnoremap k gk
nnoremap <down> gj
nnoremap <up> gk

""move to other Windows

nnoremap s <Nop>
"s+hjkl move to window
nnoremap sj <C-w>j
nnoremap sk <C-w>k
nnoremap sl <C-w>l
nnoremap sh <C-w>h
"s+nptT move to tab
nnoremap sn gt
nnoremap sp gT
nnoremap st :<C-u>tabnew<CR>
nnoremap sT :<C-u>Unite tab<CR>
"s+sv split window
nnoremap ss :<C-u>sp<CR>
nnoremap sv :<C-u>vs<CR>
"s+qQ kill buffer or window
nnoremap sQ :<C-u>q<CR>
nnoremap sq :<C-u>bd<CR>

""ESC in insert-mode
inoremap jj <ESC>

""No hlsearch with ESC-ESC
nnoremap <ESC><ESC> :<C-u>set nohlsearch!<CR>

""Toggle relativenumber
nnoremap <F2> :<C-u>setlocal relativenumber!<CR>

設定内容のWindowを開いたり閉じたりはsキーをメインに使ってる。 参考にしたページがなくなってた。

Neovim一番最初の設定

前回は1回目だけ作成するPowerShellファイルを作成 現時点において、

  • Neovimはどうにかインストールしている
  • OneDriveに設定ファイルの保存場所は作成した
  • 初期設定のPowerShellを実施して、XDG関係のフォルダの設定と作成は実施
  • Configの場所とOneDriveの設定ファイル保存場所はジャンクションの設定済

の状態になっています。

設定ファイルを作っていこう。

:e ~/.config/nvim/init.vim

で新規ファイルを作成。

:w

でなにはなくともまずは保存

今回の設定ファイルの方針はこの通り

  • できるだけ分割する
  • プラグインの設定と初期設定は別フォルダに

というわけでフォルダを作ろう

:!mkdir ~/.config/nvim/basic
:!mkdir ~/.config/nvim/plugin

:の後ろに!でvim外のコマンド実行。

でもって、それぞれのフォルダから起動時に設定ファイルを読み込むために

init.vimに記載

runtime! basic/*.vim
runtime! plugin/*.vim

ここまでやったら

:wq

で保存して終了 もう一度nvimを起動 今度は

:e $MYVIMRC

でinit.vimが開けるようになってるはず。 最初の環境変数の設定と、init.vimの作成に間違いことがこの作業で確認できる。

余計な環境変数なかったら「$M」まで入力してTabキーで$MYVIMRCを補完されるはず。

この記事はここまで。

NeoVimの初期設定

今度はneovim導入。

最近vimの設定を変更することもなく、問題なく使えていて、プラグインを変更したりすることもなく穏やかにすごしていたのですが…

syu-m-5151.hatenablog.com

 

この記事読んだらなにか新しいことしたいなという熱が…

でもって以前みた

これも気になってたので、久々に環境を色々いじってみようと。

いつもすぐに環境壊す人なので、簡単に復元できることを条件にWindows10でNeovimをいじる環境の構築を検討してみた。

検討内容

  • GUICUIも対応
  • きちんとインストールしようが、ポータル版だろうが対応できるように
  • Macとの互換性は考えない。Winのみ

といったことを考えたら

設定ファイルの保管場所はOneDriveを使用する

やっぱりOS標準で最初から入っているというのは強い。最初に実行するスクリプトや設定ファイルの大本はここにした。

環境変数大事

実行前に環境変数指定したバッチファイルも考えたけど、結局他のアプリと連携できなくなることが多い、せめてユーザーレベルでの環境変数を設定することで、色々とやりやすいようにした。

やったこと

Windowsでinit.vimの置き場所のデフォルトはこれ

C:\Users\[ユーザー名]\AppData\Local\nvim\init.vim

このフォルダが探しにくい。

LinuxMacと同じく

~/.config/nvim/init.vim

にしておきたい。ここで~はホームフォルダのことだから

C:\Users\[ユーザー名]\.config\nvim\init.vim

に変更になる。この.configフォルダを使うのは

XDG Base Directory Specification という考え方を元に設定ファイルなどは全部まとめましょうという考え方。日本語訳はXDG Base Directory - ArchWiki なんかが参考になるかも。

Windowsのアプリ管理用のScoopなんかもこの方法を使ってるから.configフォルダができあがってる人もいるかもしれない。

じゃあこのXDGベースにするにはどうするかというと、

XDG_CONFIG_HOME
XDG_CACHE_HOME
XDG_DATA_HOME

の3つの場所を設定してあげればいい。

そのために使うのが環境変数

普通に設定するなら、「設定」→「システム」→「詳細情報」の画面の下のほうにある「システムの詳細設定」を開き(2022/02/19時点、Windows10 20H2での話)、開いたウィンドウの環境変数をクリック

f:id:homaju:20220219102359p:plain

環境変数の設定状況

ユーザー名のところは隠してますけど、最初はTMPの項目まで入ってるはず。

ここに画像にある最後の3つを追加した。

手入力はメンドイし、絶対打ち間違えをいつもやるので、ここはスクリプトを作成してまかせる。その内容がこちら。

$env:XDG_CONFIG_HOME="$env:HOMEPATH\.config"
New-Item $env:XDG_CONFIG_HOME -ItemType Directory

cmd /c mklink /j  "$env:XDG_CONFIG_HOME\nvim" "$env:OneDrive\Software\Settings\nvim\"

$env:XDG_CACHE_HOME="$env:TEMP\neovim\"
New-Item $env:XDG_CACHE_HOME -ItemType Directory

$env:XDG_DATA_HOME="$env:HOMEPATH\.local\"
New-Item $env:XDG_DATA_HOME -ItemType Directory 

#Set permanent env
[Environment]::SetEnvironmentVariable('XDG_CONFIG_HOME',$Env:XDG_CONFIG_HOME,'User')
[Environment]::SetEnvironmentVariable('XDG_CACHE_HOME',$Env:XDG_CACHE_HOME,'User')
[Environment]::SetEnvironmentVariable('XDG_DATA_HOME',$Env:XDG_DATA_HOME,'User')

1行目:XDG_CONFIG_HOMEの場所を指定

2行目:XDG_CONFIG_HOMEのフォルダを作成
    ほんとはフォルダがあるか確認して、なければ作成にすべき

3行目:OneDriveの設定ファイルをおいたフォルダとXDG_CONFIG_HOME内のnvimフォルダをジャンクションにする。ジャンクションにしたら、本体はOneDriveに置いたままだけど、XDG_CONFIG_HOMEにファイルがあるように見える。init.nvimを編集したら、OneDrive側も最新版になるので、いちいちコピーしなくていい。

4行目:XDG_CACHE_HOMEの設定、一時ファイルの場所。swapファイルとかを置く場所として利用してる。ここはユーザーのtempフォルダを利用してる。

7行目:XDG_DATA_HOMEフォルダの場所。ダウンロードしたプラグインとかの置き場。これはOneDriveで保管するものじゃないから、XDG_CONFIG_HOMEとは別にした方がいい。通常は~/.localとのことなので、同じようにした

10行目:ここからの3行が、環境変数の設定。これを実行すると、上に貼った画像の内容が反映される。

 

こうやって作ったPowerShellファイルを初回に実行することで、必要な環境変数が設定されるし、OneDriveからファイルをコピーする必要もない。

nvimを実行したら、こちらが想定した場所からinit.vimを読み込んでることが確認できた。

 

今日はここまで。

vimrcの場所について(Windows版)

Windowsのホームの場所は C:\Users\"ユーザー名"\ となっている。 ここに設定ファイルを置くことになるのだけど、 dotファイルや設定ファイルが散らかって非常に気分が良くない。

さらにはgitを使っていると、一つフォルダを作成していて、そこにあるファイルからリンクファイルを作る必要があり、ひと手間かかってる。

かといって、一つのフォルダの中にrcファイルもプラグインとかを保存するvimfilesも保存すると、今度はgitignoreが大変なことになる。

そういう訳で、整理整頓できる。そして環境も復活しやすい方法を探してみた。

  1. vimの起動時にvimrcファイルを指定 gitで管理しているフォルダは"win-config"なので、起動時に gvim -u c:\Users\○○○\win-config_vimrc として起動した。

    • メリット ショートカットにオプションをつけるだけ
    • デメリット ホームディレクトリにないvimrcを使用している すなわち「set nocompatible」オプションが必要!!! _gvimrcを読み込んでくれない

    デメリットが多すぎたので、この方法は諦めた。

  2. vim起動用のバッチファイルを作成。 「win-config」内にgvim起動用のバッチファイルを作成。 このバッチファイルもgitで管理

    • メリット HOMEディレクトリを変更することで、リンクファイルの作成不要に vimfilesはHOMEに設定したディレクトリの1つ上に作成するので整理も楽
    • デメリット スタートメニューに登録できてない
@echo off
REM バッチファイルのある場所をHOMEに設定
set HOME=%CD% 
REM バッチファイルのある場所から一つ上に移動
pushd %~dp0..
REM 本来のHOMEをMY_HOMEという環境変数に登録
set MY_HOME=%CD%
REM Scoopでインストールしたgvimを起動
start C:\Users\「ユーザー名」\scoop\apps\vim-kaoriya\current\gvim.exe
REM コマンドプロンプト画面を閉じる
exit

環境変数vim内で反映されるので、その内容をもとにvimrc内でvimfilesやruntimepathを設定

"" runtime path
let $MY_VIMRUNTIME = $MY_HOME . '/vimfiles'
let $VIMPLUG = $MY_VIMRUNTIME . '/plugged'

"" ^=を使うことで、検索ディレクトリを前に追加
set runtimepath^=$MY_VIMRUNTIME
set runtimepath^=$VIMPLUG

これで整理しやすい環境ができた

vimとIDE(ポエム)

誰かに読んでほしいわけじゃなく、自分の頭のモヤモヤを形にするために。

 

いっときPycharmに浮気してました。

使ってみて、IDEの良さってのが少しわかったような気がする。全部環境を用意してもらった状態で、自分の取り組むものに集中できるというのは素晴らしいことなのかもしれない。

 

でも、vimrcをいじって、環境を作りながら一つ一つ把握していく楽しさがないなぁと。

 

vim本体やプラグインの内容を把握してる訳じゃないけど、メーカーパソコンに対する自作パソコンみたいに、自分で組み合わせることで詳しくなっていくような楽しさがvimにはある

 

自分がやりたいこと、学びたいことをやりながらも、色々と環境を作っていくことも楽しみながらやってみたい。

そういうわけでvimに戻ってきました。

 

Windowsでのソフトインストール

macのHomebrewみたいに、ソフトのダウンロードとインストールを一括してやってくれるのに、chocolatyとscoopがあるけど、どっちもやめた。

 

chocolatyはアンインストールがうまくいかない場合があり、scoopはアプリのポータブル版があるものしかカタログに載っていない状態。

どちらも中途半端な状態では、併用するのも管理が面倒くさい。

 

昔やってたUSBメモリにポータブル版を設定したのと同じようにしてみた。

 

基本は昔の記事の内容。

homaju.hatenablog.com

これとMSYS2を組み合わせて、どのWindows10パソコンでもすぐ使えるようにした。

 

MSYS2のインストール

ぐぐればどこでも説明は載っているので割愛

とりあえずMSYS2 homepage 書いてある通りにすればいい。

だいぶ楽になった感じ。そしてインストール先をD:\rootとしてCドライブには入れなかった。

 

ポータブル版のアプリをインストール

ポータブル版はインストールしてフォルダを作成してくれるものや、解凍してできたフォルダをそのままコピーするものもある。root直下にappというフォルダを作成して、そこにアプリごとにフォルダを作成している。現時点でappフォルダに入れてるアプリは下記の通り。

  • afxw:キーボード操作のみの二画面ファイラー
  • clnch3Pythonで拡張可能はコマンドラインランチャー
  • FastCopy:ファイルコピーのソフト(スリープしても続きができるから使用)
  • FirefoxPortable:メインブラウザ
  • mupdf:見ることに特化した軽量PDFビューア(解説
  • NewtonPad:thumbsenseを使えるソフトウェア
  • nodoka:キーボードリマップソフト。これは手放せない。
  • PDF:PDFの追加・削除・回転等の単純アプリをこの中に。
  • pythonWindowsPythonをここにインストール(公式から)
  • RegistryFinder64レジストリの確認用アプリ
  • Tascher:アプリ切り替えのソフト。キーボードのみでも軽快に動く
  • vlc:動画再生ソフト(ダウンロードボタンでzipファイルが選べる

このソフトの起動は起動じのバッチファイルか、クラフトラウンチ(clnch3)を使う。

環境変数とパスの設定をしているから問題なく動く。

 

@echo on
REM%~d0で実行ファイルの存在するドライブに移動
%~d0
REM%~dp0で実行ファイルの存在するフォルダに移動
cd %~dp0

REM 環境変数の設定
set MYBIN=%~d0\root\app
set HOME=%~dp0
set MSYS=winsymlinks:lnk

REM 常駐アプリを起動

start "" "%MYBIN%\nodoka\nodoka.exe" -k  -c3
start %MYBIN%\Tascher\Tascher.exe
start %MYBIN%\clnch3\clnch.exe

 

 

 

 

HP Spectre X360の設定

HP Spectra X360 の設定内容のメモ

を、取ろうとしていたのに、時期が遅くなって大事なことをほとんど忘れてしまった。

また、初期化した場合に備えて、できるだけの記録をここに残しておきます。

Spectre X360の設定

購入したのは「HP Spectre x360 - 13-ap0042tu」

  • OS :Windows 10 Pro 64 ビット  1903
  • CPU:Core i7-8565U CPU @ 1.80GHz
  • メモリ:16 GB
  • モニタ:13インチ 3840 x 2160

初期設定内容

一番問題になるのは、トラックパッドの設定。 デフォルトのドライバーはSynapticの高精細ドライバーになっていない。 これを変更すると、複数本の指での操作が段違いになる。 ドライバーの削除と入れ直しで頑張ったから、成果を見直そうとしたら元に戻ってた……

どういうこと?

とりあえず。高精細対応

1月13日のドライバ 5.5.15.1102にしたら高精細対応になってた。 これは別のドライバを入れた履歴があるから、そうなったのか、今回から高精細になったからかは不明…