ところで自分が使用するNetBSDやLinuxやCygwin上では
zsh を使用していて、suでrootになったときにはプロンプトを赤色に変更しています。通常のプロンプトはネイビーというかブルー系です。これは、うっかりミスをできるだけ防ぐように、という工夫です。これを管理者モードのコマンドプロンプトでも実現できないか、と考えるわけです。
zsh を使用していて、suでrootになったときにはプロンプトを赤色に変更しています。通常のプロンプトはネイビーというかブルー系です。これは、うっかりミスをできるだけ防ぐように、という工夫です。c:\tempからd:\appsに移動したいときにc:\temp>cd d:\apps
c:\temp>
c:\tempのまま。d:ドライブに移動すると、d:ドライブではd:\appsに移動しているという実装になっています。つまり、カレントディレクトリはドライブごとに管理されています。cd /?
/dオプションがあることがわかります。これはドライブも含めて移動するオプションで、c:\temp>cd /d d:\apps
d:\apps>
d:\apps になります。doskey というユーティリティがあり、これを使うとUNIX上のシェルのようにエイリアスを使用することができるようになります。D:\apps>doskey /?
コマンド ラインの編集、Windows コマンドの再呼び出し、マクロの作成を行います。
DOSKEY [/REINSTALL] [/LISTSIZE=サイズ] [/MACROS[:ALL | :実行ファイル名]]
[/HISTORY] [/INSERT | /OVERSTRIKE] [/EXENAME=実行ファイル名]
[/MACROFILE=ファイル名][マクロ名=[テキスト]]
/REINSTALL Doskey の新しいコピーを組み込みます。
/LISTSIZE=サイズ コマンド履歴バッファーのサイズを設定します。
/MACROS すべての Doskey マクロを表示します。
/MACROS:ALL Doskey マクロを含むすべての実行可能ファイルの
すべての Doskey マクロを表示します。
/MACROS:実行ファイル名
指定した実行可能ファイルのすべての Doskey マクロを
表示します。
/HISTORY メモリ内のすべてのコマンドを表示します。
/INSERT 入力したテキストが古いテキストに挿入されるように
指定します。
/OVERSTRIKE 入力したテキストが古いテキストを上書きするように
指定します。
/EXENAME=実行ファイル名 実行可能ファイルを指定します。
/MACROFILE=ファイル名 作成するマクロ ファイル名を指定します。
マクロ名 作成するマクロ名を指定します。
テキスト 登録するコマンドを指定します。
上下方向キーはコマンドを再度呼び出します。Esc はコマンド ラインをクリア
します。F7 はコマンド履歴を表示します。Alt+F7 はコマンド履歴をクリアします。
F8 はコマンド履歴を検索します。F9 は数字によるコマンドを選択します。
Alt+F10 はマクロ定義をクリアします。
以下は、DOSKEY のマクロ定義で使用する特殊コードです:
$T コマンド セパレーターです。マクロ中で複数のコマンドを定義できます。
$1-$9 バッチ パラメーターです。バッチ ファイル中の %1-%9 と同じ意味です。
$* コマンド ライン上のマクロ名に続くテキストで置き換えられるシンボルです。doskey cd=cd /d $* とすれば、cd の動作が cd /d に展開されるのでドライブも一緒に変更できるようになります。HKEY_CURRENT_USER\Software\Microsoft\Command Processor に AutoRunというキーを作り、そこに初期設定として実行したい内容を記述したバッチファイルを設定しておきます。@echo off
Doskey cd=cd /d $*
Doskey history=doskey /history
Doskey vim="C:\Program Files\Vim\vim.exe" $*
cmd.rc で、以下のような内容を記述します。AutoRun には doskey /macrofile=%userprofile%\cmd.rcなどとします。CD=CD /D $*
H=doskey /history
HISTORY=doskey /history
ALIASES=doskey /macros
@echo %1
a.bat あいうえお_かきくけこ と引数を与えて実行します。 "_" は全角空白に置き換えてください。set a=あいうえお かきくけこ
echo %a%
あいうえお かきくけこ
setx GITPATH=C:\Program Files\Git\bin;C:\Program Files\Git\usr\bin;C:\Program Files\Git\mingw64\bin
setx CMAKEPATH=C:\Program Files\CMake\bin
setx PATH=%PATH%;%GITPATH%;%CMAKEPATH%
などとしておきます。こうしておくと、Git for Windowsに同梱されているMSYS系のコマンド (cpやpatchなど) が使えるようになります。CygwinやMSYSなどを別途インストールしておく必要はありません。%USERPROFILE%/build ディレクトリで行う。c:\Apps\Neovim とする。cd %USERPROFILE%\build
git clone https://github.com/kiyolee/libiconv-win-build
cd libiconv-win-build/build-VS2017-MT
libiconv.sln をダブルクリックしてVS2017を起動する。cd %USERPROFILE%\build
git clone https://github.com/neovim/neovim
cd neovim
mkdir .deps
mkdir build
cd .deps
"\Program Files\CMake\bin\CMAKE.exe" -G "Visual Studio 15 2017 Win64" ..\third-party
MSbuild ALL_BUILD.vcxproj /p:Configuration=Release
2018/5/1現在のmasterでは libuv にパッチが追加されたもののパッチできないため、libuv のコンパイルが失敗します。その場合にはなんとか自力で (libuv.vcprojなどを見ながら手動で) コンパイルしておきます。build -+- neovim -+- .deps -- usr -+- bin
| | +- include
| | +- lib
| |
| +- build
|
+- libiconv-win-build -+- include -- iconv.h
+- build-VS2017-MT -- x64 -- Release -+- libiconv.dll
+- libiconv.lib
+- iconv.exe
cd %USERPROFILE%\build\neovim\.deps
copy ..\..\libiconv-win-build\include\iconv.h usr\include
copy ..\..\libiconv-win-build\build-VS2017-MT\x64\Release\iconv.exe usr\bin
copy ..\..\libiconv-win-build\build-VS2017-MT\x64\Release\libiconv.dll usr\bin
copy ..\..\libiconv-win-build\build-VS2017-MT\x64\Release\*.lib usr\lib
gettext0.19.8.1-iconv1.15-shared-64.zip を展開して libintl-8.dll を取り出し、usr\bin にコピーしておきます。--- cmake\FindIconv.cmake.orig Wed Apr 18 18:08:38 2018
+++ cmake\FindIconv.cmake Wed Apr 18 18:05:32 2018
@@ -8,7 +8,7 @@
include(LibFindMacros)
find_path(ICONV_INCLUDE_DIR NAMES iconv.h)
-find_library(ICONV_LIBRARY NAMES iconv)
+find_library(ICONV_LIBRARY NAMES iconv libiconv libiconv-2)
set(Iconv_PROCESS_INCLUDES ICONV_INCLUDE_DIR)
if(ICONV_LIBRARY)
--- cmake\FindLibIntl.cmake.orig Wed Apr 18 18:08:28 2018
+++ cmake\FindLibIntl.cmake Wed Apr 18 18:04:29 2018
@@ -27,7 +27,7 @@
)
find_library(LibIntl_LIBRARY
- NAMES intl libintl
+ NAMES intl libintl libintl-8
)
if (LibIntl_INCLUDE_DIR)
%USERPROFILE%\neovim ディレクトリで行います。上記のdiffを cmake.patch という名前で保存し、cd %USERPROFILE%\neovim
patch -p0 < cmake.patch
でパッチがあたります。patch コマンドはGit for Windowsに含まれています。 cd %USERPROFILE%\build\neovim\build
"\Program Files\CMake\bin\CMAKE.exe" -DCMAKE_BUILD_TYPE=RelWithDebInfo -CMAKE_INSTALL_PREFIX=\Apps\Neovim -G "Visual Studio 15 2017 Win64" ..
MSbuild ALL_BUILD.vcxproj /p:Configuration=Release
Configuration は Release もしくは RelWithDebInfo を指定します。 cp なんかを使ってスクリプトでも作ろうかと思ったのですが、INSTALL.vcxproj を使います。 cd %USERPROFILE%\build\neovim\build
MSbuild INSTALL.vcxproj /p:Configuration=Release
これで -CMAKE_INSTALL_PREFIX= で指定した場所にデプロイされます。ここでは c:\Apps\Neovim になっています。 Neovim.exeという形でインストーラを作成できます。NSISはインストールしておけばパスを通す必要はないようです。 cd %USERPROFILE%\build\neovim\build
MSbuild PACKAGE.vcxproj /p:Configuration=Release
これで %USERPROFILE%\build に Neovim.exe が生成されます。 これは-CMAKE_INSTALL_PREFIX= で指定した場所ではなく、c:\Program Files\Neovim にインストールされるようです。安価で優秀なデバッグプローブはないかしら、と探したら、 Raspberry Pi Debug Probe というのがあったんですが、これは3線がにゅるんと出てるだけです。 もちろんSWDなら3線を繋げばいいのではありますが、汎用的に考えるなら5x2のリボンケーブルコネクタが欲し...