Cygwinをインストールしたばかりですが、その動作について少し混乱しています。 C:\cygwin\home
に「ホーム」フォルダがあるようです。 Mercurial、Vim、Gitなどをそれぞれのインストーラーを使用してWindowsマシンにインストールしてセットアップしました。 Cygwinにそれらのプログラムとそれらの設定ファイル(_vimrcなど)を使用させるにはどうすればよいですか?
Cygwinは、主にWindows上にLinuxのような環境を提供することを目的としています。 Cygwin用にコンパイルされたプログラムで最適に動作します。ネイティブのWindowsプログラムと直接連携できますが、注意が必要です。
Cygwinの機能の1つは、Windowsファイルシステムを一般的なLinuxファイルシステムのように見せようとすることです。たとえば、プログラムは/ usr/binの下にあります。 CygwinプログラムはC:ドライブを参照せず、/ cygdrive/cを参照します。 (一部のCygwinプログラムは「C:」を理解しますが、それらは例外です。)ホームディレクトリはWindowsのC:\ cygwin\homeの下に表示されますが、Cygwinの/ homeの下に表示されます。つまり、CygwinプログラムとWindowsプログラムの間でフルパス名を渡すのは難しい場合があります。WindowsプログラムはCygwinフルパス名を理解せず、Cygwinプログラムは通常Windowsフルパス名を理解しません。 WindowsパスとCygwinパスの間で変換できるCygwinユーティリティcygpathがありますが、必要に応じてそのレベルの変換を自分で挿入する必要があります。
CygwinプログラムとWindowsプログラムとのインターフェースの問題に対する一般的な解決策を知りません。最善の解決策は、何をしようとしているのか、Linuxの世界とWindowsの世界にどれだけ住みたいか、そして使用する必要のあるプログラムによって異なります。
CygwinコマンドラインからMercurial、Vim、Gitなどを使用することを計画している場合は、これらのプログラムのCygwinバージョンをインストールすることをお勧めします。システムにはWindowsバージョンとCygwinバージョンの両方を含めることができますが、PATHに注意する必要があります。
Cygwinシェルを使用するようにWindowsgvimを構成しようとしましたが、やっと諦めました。 GUIからファイルを開くときはWindowsgvimを使用し、コマンドラインからファイルを開くときはCygwinvimを使用するようになりました。 Windows Vim内には、Windows OSAPIの規則を外部プログラムのCygwinの規則と一致させる必要がある場所が多すぎます。とはいえ、両方に同じユーザー構成ファイルを使用するのは簡単です。 Cygwin bashシェルの場合:
ln -s /cygdrive/c/Documents\ and\ Settings/username/_vimrc ~/.vimrc
ln -s /cygdrive/c/Documents\ and\ Settings/username/vimfiles ~/.vim
これらのファイルすべてにUnixの行末があることを確認し、そうでないファイルにはd2u
を使用する必要があります。 CygwinのVim(任意のUnix Vim)は、Unixの行末を想定しています。 Windows Vimは、UnixまたはDOSの行末を受け入れます。
私はCygwinをかなり使用しましたが、専門家ではありません。上記は私の経験を反映しています。
ほとんどの問題は、それらのプログラムがオペレーティングシステムのPATH環境変数に含まれていることを確認することで解決されます。
お使いのWindowsのバージョンに応じて、次のようになります。
Windowsとcygwin(パス)の相互作用に関する厄介な問題のいくつかを修正するのに役立つスクリプトを作成しました。
makewin() {
eval "function $1 {
# Don't taint locals
local FN
declare -a FN
local x
# For each option
for x in \"\${@}\"
do
# Fix the path to "windows"
FN[\"\${#FN[*]}\"]=\`cygpath -w \"\$x\"|sed 's/ /\\\\ /g'\`
done
# Run the Command
\"$2\" \"\${FN[@]}\" >/dev/null 2>/dev/null &
}";
}
次に、修正したいコマンドごとに実行します
makewin vi /cygdrive/c/Program\ Files\ \(x86\)/Vim/vim74/gvim.exe
makewin np /cygdrive/c/Program\ Files\ \(x86\)/Notepad++/notepad++.exe
パラメータパスの問題を修正する、必要なコマンドの関数エイリアスを作成します。これは私の〜/ .bash_profileに追加されます