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

MacBookAirで使っている便利ツール vol.2

$
0
0

はじめに

MacBookAirを手に入れてから、だいぶ時間が経ちました。ここで、現在では、どういうふうに使っているのかを設定方法や使用しているツールなどを交えて紹介していきたいと思います。前回の続きです。

目次

番号OSバージョン
01MacMavericks
02WindowsWindows7
03LinuxManjaro Linux
04LinuxKail Linux
05Tipsおまけ

概要

Mac | Mavericks

Mavericksの設定については、ブログでも何度か紹介してきましたので、割と簡単にいきたいと思います。

主に、使用しているツールを書いていきます。

Windows | Windows7

私の場合、メインとしてCygwinPowerShellを使っています。

Windows7は、仮想環境上で動作させています。

アプリのインストールは、Chocolateyで行います。

その他、TerminalにConsole Zを使います。

Linux | Manjaro Linux

現在、もう一つのMacBookAirには、Manjaro Linuxを直接インストールしています。

ウィンドウマネージャは、Awesomeを使っています。

最初は、Macとのデュアルブートしてみたのですが、どうもしっくり来なかったので、Macは消しました。非常に快適です。

XPがサポート終了のニュースが入っていますが、個人的には、Manjaro Linux+Awesomeをおすすめします。このOSは、最小構成で非常にサクサク動作します。また、ウィンドウ操作が快適です。

今回は、個人的に一番おすすめのOSです。設定と使っているアプリなどを紹介します。

Linux | Kail Linux

主に脆弱性検証のために使えるOSです。

こちらも仮想環境上に作成しています。

Tips | おまけ

この記事は、あまりに退屈なものが多く、私のような初心者向けの記事なので、長い記事を読んでられないという人のために、Tips集を設けました。

この記事で紹介された見落としがちだけど、便利そうな技、ツールを選んで紹介します。

Mac | Mavericks

Mavericks
Mavericksで使っているアプリ
MacBookAirで使ってないけど有効なツール
Mavericksで使える有料アプリなど
Command Lineで使用しているツール
Mavericksの初期設定
Mavericksにインストールしたアプリ
MavericksをVirtualBoxにインストールする

Mavericksで使っているアプリ

MacVim

高機能なエディタ。ちなみに、TweetVimのアイコンを表示するには、設定にて、Core Textレンダラを使用するを外して起動し、再度チェックを入れるといける。エイリアスは以下のように設定。

alias v='env LANG=ja_JP.UTF-8 /Applications/MacVim.app/Contents/MacOS/Vim "$@"'

iTerm2

スタイリッシュなターミナルアプリ。パソコン操作はほとんどこのアプリを介して行う。フォーカスを端末に戻すには、以下のコマンドを実行。

$ osascript -e 'tell application "iTerm" to activate'

Google Chrome

要素の検証機能が逸材のブラウザ。CSSやHTMLを少しでも扱うことがあるなら、これ以外には考えられない。

ちなみに、Google Chromeは、起動オプションを付けることもできます。下記は、特定のURLを開くオプションと、プロセス制限の起動オプション。

$ open -a Google\ Chrome http://syui.github.io/

$ open -a Google\ Chrome --args --renderer-process-limit=2

Google IME

正確なIME日本語入力。個人的な設定としては、まず半角にすることかな。

Growl

通知の設定を行うアプリ。CUI版のgrowlnotifyもあります。

$ growlnotify -t twitter -m tweet!

XtraFinder

Finderのカスタマイズを行うアプリ。Finderの再起動は以下のコマンドを実行

$ killall Finder

BetterTouchTool

様々なショートカットを設定できるアプリ。

TinkerTool

Macの隠し機能を簡単に有効にするアプリ。初期設定の時は一度は使う。

VirtualBox

仮想環境でOSを動作させるためのアプリ。簡単に設定を保存、リセット、再生できる。個人的には、かなりの使用頻度で、仮想OSが自分のメイン環境とも言える。イメージの起動は以下の様な感じ。

$ VBoxManage modifyvm ubuntu --vrde on && VBoxManage startvm ubuntu

Skitch

スクリーンショットを保存するアプリ。新しいバージョンよりも前のバージョンのほうが人気があった。

Dash

様々な辞書を呼び出すことができるアプリ。コマンドラインからも呼び出せます。LINK

DashをCLIから呼び出す
$ open dash://[word]$ open dash://'[word1] [word2]'$ open dash://[language]:[word]

Alfred

こちらも高速な検索と呼び出しを設定できるアプリ。mdfindというコマンドもあるが、設定が面倒という方はGUIのこのアプリ。

Dropbox

クラウドデータベースアプリ。企業が管理するサーバーにファイルを保存し、簡単で手軽な認証を提供するサービスのクライアントアプリ。

ShiftIt

ウィンドウをショートカットキーで操作するためのアプリ。

Kobito

Qiitaに記事を投稿できるエディタ。プレビュー機能も備えている。Qiitaは、Markdownで書けるので人気がある。

GIMP

高機能な画像編集アプリ。無料アプリではこれ一択という人が多い。

KeePassX

フリーのパスワード管理アプリ。

ClamXav

コンピュータウィルスをスキャンするためのアプリ。ただし、デフォルトでは監視を行うものではないので注意。

ClipMenu

クリップボード履歴をいつでも呼び出せるアプリ。

CheatSheet

アプリのキー操作をCheatSheetとしていつでも呼び出せるアプリ。

CCleaner

パソコンに保存されている一時ファイルや不要なファイルを一括削除してくれるアプリ。

VLC

定番の動画プレイヤー。インターフェイスにncursesを利用すれば、CUI操作ができる。

$ /Applications/VLC.app/Contents/MacOS/VLC

XQuartz

X.Org Server に基づく、OS X 向けの X Window System の実装です。

ImageUp

IMEのON/OFFをメニューバーに表示してくれるアプリ。

AppCleaner

アプリの完全削除を実現するためのアプリ。

MacBookAirで使ってないけど有効なツール

Gentoo Linux

最小構成で起動するOS。ソースコードを自身でコンパイルする主義を採用している。そのため、ある程度のスペックを備えたマシンで使うのが好ましいと思われる。

Ubuntu Linux

割りと最新の動向に素早い反応を見せるOSというイメージがある。Linuxの中では人気のOS。動作も比較的安定している。

Emacs

高機能でカスタマイズ性の高いテキストエディタ。テキストエディタを超える存在。

Sublime Text

操作性と拡張性に優れたタブ切り替え型のテキストエディター。Windows, Linux, Macで使える。

Eclipse

IDEであり、IBMによって開発された統合開発環境の一つ。Java開発に好んで使われている印象

Coda 2

これについてはよく知らないのだけど、ブロガーの人はみんなこのアプリを持っているらしい。多分、IDEだと思う。

Xcode

iOSアプリの作成には必須のIDE。

GitHub for Mac

GUIのGitHubクライアント。視覚的に分かりやすい。

DashExpander

軽量でシンプルなテキストエディタ。

TextMate

オープンソース化なテキストエディタ。かなり人気がある。

Mixins Tutorial

高機能で、軽量。拡張機能を JavaScript + Node.js で書ける。

TotalFinder

Finderを拡張するアプリ。定番だけど知らなかった。

TotalSpaces2

仮想デスクトップを使いやすくするための定番アプリ。非常に高機能、シンプルな設計です。

TotalTerminal

拡張性の優れたシンプルなターミナルアプリ。

NetBeans

日本語ドキュメントがしっかりしたIDE。使っている人は、少数派な印象。

dolipo

ネット環境の高速化を図るためのアプリ。

TeamViewer

簡単なVLCクライアント。VLCというのは、デスクトップのリモート操作のことで、このアプリは、難しいサーバーの設定などを省いてくれる。

FireAlpaca

高機能で無料なペイントアプリ。昔書いた記事にて教えてもらいました。ありがとうございます。

AccessMenuBarApps

メニューバーへのアクセス改善してくれるアプリ。

Quicksilver

ショートカットを設定するためのアプリ。BetterTouchToolを使う人と好みがわかれる。

Evernote

クラウドメモアプリ。様々なOSに対応していて、メモを保存できる。

Notational Velocity

Simplenoteのクライアントアプリ。Simplenoteとは、Evernoteのようなものでクラウドメモ帳。

Mavericksで使える有料アプリなど

PopClip

テキストを選択したときに、ポップアップでメニューを表示してくれるアプリ。使ってる人多い。

MarsEdit

ブログエディタであり、各種ブログのプレビューを提供してくれる。

1Password

パスワード管理アプリ。いろいろな連携ができて非常に便利。

Vmware Fusion

仮想化を支援するためのアプリ。非常に人気があり、完結で分かりやすい。例えば、Mavericksの仮想化でもVirtualBoxでは、苦戦するが、このアプリなら一発らしい。

TextExpander

高機能なスニペットアプリ。定形入力を保存しておいて使う。

Type2Phone

MacのキーボードをBluetoothキーボードにしてしまおうというアプリ。

DisplayLink

iPadをデュアルモニタにするアプリ。

Flavours

OS X の全体のアピアランスをワンタッチで切り替えられるテーマチェンジャーアプリ。外見にこだわりを持つ人にはおすすめ。

Photoshop

非常に高機能な画像編集アプリ。高価だが、ブロガーの人はみんな持ってるらしい。

Illustrator

こちらも同じく、高機能な画像編集アプリ。イラストを描く人には必須アプリ。

HATSUNE MIKU V3

これひとつに曲作りのために必要なアプリがまとめられていて、ボカロ曲を作れる。

コマンドラインで使用しているツール

jq

jqは、JSONのデータを扱いやすくするためのものです。

$ brew install jq

$ echo'{"user":"stedolan", "titles":["JQ Primer",  "More JQ"]}'| jq .titles

fu

fuは、commandlinefu.comからの検索をかけ、コマンドをコピーするものです。

$ git clone git://github.com/samirahmed/fu.git

$ cd fu/

$ sudo make install

$ fu -a git

$ fu -c 1

pandoc

pacdocは、様々なドキュメントを変換するものです。

$ brew install haskell-platform

$ cabal install pandoc

$ pandoc input.md -o output.docx

proctools

pkillpgrepなどを使えるようになります。

$ brew install proctools

$ pgrep test

atool

atoolaunpack(解凍)やapack(圧縮)、als(中身の確認)ができるスクリプト群です。

$ brew install atool rar

$ aunpack test.rar

mdfind

mdfindは高速でファイル検索を行うコマンドです。

$ mdfind . txt

purge

purgeは、メモリを開放するコマンドです。

$ sudo purge

ctags

ctagsは、タグを生成するコマンドです。

$ brew install ctags

$ ctags -R

exiftool

exiftoolは、EXIF情報の確認、削除などを行うコマンドです。

$ brew install exiftool

$ exiftool test.png

$ exiftool -overwrite_original -all= ~/Pictures

imagemagick

imagemagickは、画像を編集、変換するコマンドです。

$ brew install imagemagick

$ mogrify -format png -quality 100 *.jpg

ffmpeg

ffmpegは、動画を変換するコマンドです。

$ brew install ffmpeg

$ for i in *.mp4;do ffmpeg -i $i -vn ${i%.mp4}.mp3;done

Mavericksの初期設定

homebrew

Macについては、Homebrewを使うことで、アプリをインストールできます。

$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

Xcodeを使っている人は、Xcodeをインストール後に、Command Line Toolsをインストールします。

$ xcode-select --install

私の場合、Xcodeは、使いませんので、Command Line Toolsだけをインストールします。

$ open -a Safari "https://developer.apple.com/downloads/index.action"&&read key

$ hdiutil mount ~/Downloads/*.dmg && killall Finder

$ sudo installer -pkg /Volumes/Command\ Line\ Developer\ Tools/*.pkg -target /Volumes/Macintosh\ HD/

認証すら面倒な方は、airkeepassなどを使って自動化してください。

Homebrewのエラーは、以下のコマンドにて確認できます。エラーが出て、修正の必要性がある場合は、修正してください。

$ brew doctor

Homebrewは、bundleに対応しています。

$ brew bundle ~/dotfiles/bundle/Brewfile

以下、インストールファイルの作成です。

$ mkdir -p  ~/dotfiles/bundle

$ cat << EOF > ~/dotfiles/bundle/Brewfileupdateupgradetap homebrew/binary || truetap homebrew/versions || truetap phinze/homebrew-cask || trueinstall ackcask install alfredcask alfred linkcleanupEOF

setup.sh

更に、こういったbundleファイルは、install.shsetup.shなどを作って、自動化しておくと便利です。

dotfilesをちょっと作ってあげておきました。

うまく動作しないかもですが、そのうち作りなおすつもりです...。

~/dotfiles/install.sh
#!/bin/shif[`uname`="Darwin"];then### homebrew
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"### command line tools#$ xcode-select --install
open -a Safari "https://developer.apple.com/downloads/index.action"&&read key
hdiutil mount ~/Downloads/*.dmg && killall Finder
sudo installer -pkg /Volumes/Command\ Line\ Developer\ Tools/*.pkg -target /Volumes/Macintosh\ HD/

### homebrew caskcd ~/dotfiles/mac/bundle
brew bundle

### rubycd ~/dotfiles/bundle
gem install bundler
bundle install

### python
easy_install pip

### Update#brew update#brew upgrade#brew cleanupelif[`uname`="Linux"];thensudo pacman -Syy
  sudo pacman -S git vim tmux zsh base-devel lilyterm mozc ibus-mozc yaourt
  #sudo pacman -Syu#sudo pacman -Sccfi

cygcheck -c cygwin > /dev/null 2>&1
if[$?== 0 ];thenapt-cyg install git vim tmux zsh
fi
$ curl -L https://raw.github.com/username/dotfiles/master/setup.sh | sh

wallpaper

私は、共通して、以下の壁紙をなんとなく使っています。一応、オリジナルです。ロゴは、Arch Linuxのものですが。Archのコミュニティにも一度投稿しています。

$ curl -O http://lh5.ggpht.com/-DBe6qOlsFVk/UxE1t1LosJI/AAAAAAAAH1U/lvVKxMKyifA/s0/arch_black.png

system preferences

以下、システム環境設定です。

$ open -a "system preferences"

セキュリティとプライバシー -> ファイアウォール

セキュリティとプライバシー -> プライバシー -> アクセシビリティ

キーボード -> F1, F2など...

キーボード -> ショートカット -> すべてのコントロール

キーボード -> ショートカット -> キーボード -> 一番手前の...

あとは、TinkerToolなどでカスタマイズします。

$ open -a TinkerTool

KeyRemap4MacBook

次に、KeyRemap4MacBookの設定です。

設定ファイルを指定の場所~/Library/Application Support/KeyRemap4MacBook/private.xmlに置きます。

$ open -a KeyRemap4MacBook

$ cp ~/dotfiles/mac/Library/Application\ Support/KeyRemap4MacBook/private.xml ~/Library/Application\ Support/KeyRemap4MacBook/

~/Library/Application\ Support/KeyRemap4MacBook/private.xmlファイルの内容は以下のとおりです。

<?xml version="1.0"?><root><list><item><name>LeaveInsMode with EISUU(Terminal)</name><identifier>private.app_terminal_esc_with_eisuu</identifier><only>TERMINAL</only><autogen>--KeyToKey-- KeyCode::ESCAPE, KeyCode::ESCAPE, KeyCode::JIS_EISUU</autogen><autogen>--KeyToKey-- KeyCode::J, VK_CONTROL, KeyCode::J, VK_CONTROL, KeyCode::JIS_EISUU</autogen></item></list></root>

これで、C+jを押すと、IMEがOFFになります。

その他、このアプリでは、カーソル移動速度(キーリピート)なども変更できます。変更しておきましょう。

airchrome.zsh

しかし、このブログに貼り付けられているコマンドをコピー、実行するのも面倒な作業です。

したがって、airchrome.zshというものを作ってみました。よろしければ使ってみてください。zshGoogle Chromeで動作します。

$ git clone https://github.com/syui/airchrome.zsh

$ cd airchrome.zsh

$ ./airchrome.setup

$ zsh

airkeepass

初期設定では、Webでの認証が必要になったりすることがあります。

ここで、パスワード入力を自動化するairkeepassというツールを作りました。

必要なときにスクリプトから呼び出してやると、初期設定が楽になるかもしれません。

$ git clone https://github.com/syui/airkeepass

$ cd airkeepass

$ ./airkeepass

Mavericksにインストールしたアプリ

~/dotfiles/mac/bundle/Brewfile
#sort ~/dotfiles/mac/bundle/Brewfile -uo ~/dotfiles/mac/bundle/Brewfile

update
upgrade

tap homebrew/binary ||true
tap homebrew/versions ||true
tap phinze/homebrew-cask ||true

install ack
install apple-gcc42
install aspell
install atool
install autoconf
install binutils
install cmigemo
install comix
install coreutils
install ctags
install curl
install ffmpeg
install figlet
install fontforge
install gibo
install gist
install git
install global
install gnu-sed
install gnupg
install graphicsmagick
install heroku-toolbelt
install hub
install imagemagick
install jq
install jsl
install kindlegen
install lv
install markdown
install mcrypt
install mercurial
install mplayer
install nginx
install node
install openssl
install phpenv
install pkg-config
install plenv
install postgresql
install qt
install rbenv
install readline
install reattach-to-user-namespace
install sbt
install scala
install stunnel
install tig
install tmux
install tree
install unrar
install vim
install w3m
install webkit2png
install wget
install xz
install zsh
install gauche
install brew-cask
install swftools
install youtube-dl

cask install adium
cask install adobe-reader
cask install alfred
cask install appcleaner
cask install bettertouchtool
cask install ccleaner
cask install cheatsheet
cask install clamxav
cask install clipmenu
cask install dropbox
cask install firefox
cask install flash
cask install flip4mac
cask install gimp
cask install github
cask install google-chrome
cask install google-drive
cask install google-japanese-ime
cask install grandperspective
cask install growlnotify
cask install handbrake
cask install hipchat
cask install intellij-idea-community
cask install iterm2
cask install keepassx
cask install keyremap4macbook
cask install kobito
cask install libreoffice
cask install limechat
cask install lyn
cask install macvim
cask install mplayerx
cask install nosleep
cask install openoffice
cask install opera
cask install quicksilver
cask install ripit
cask install sequel-pro
cask install shiftit
cask install silverlight
cask install simple-comic
cask install skitch
cask install skype
cask install sourcetree
cask install sublime-text
cask install sublime-text3
cask install the unarchiver
cask install tinkertool
cask install trailer
cask install vagrant
cask install virtualbox
cask install vlc
cask install xtrafinder

#cask alfred link#cleanup

ちなみに、行頭のコマンドは重複を削除するものです。

この点、必須コマンドとインストールアプリの記述を分けておくと便利かもです。

具体的には、以下の様な感じです。

~/dotfiles/mac/bundle/Gemfile.sh
update
upgrade
tap homebrew/binary ||true
tap homebrew/versions ||true
tap phinze/homebrew-cask ||true
~/dotfiles/mac/bundle/Gemfile.app
install gauche
cask install xtrafinder
~/dotfiles/mac/bundle/Gemfile.sh
#!/bin/bashbpath="~/dotfiles/mac/bundle"

sort $bpath/Brewfile.app -uo $bpath/Brewfile.app
rm $bpath/Brewfile > /dev/null 2>&1
cat $bpath/Brewfile.back > $bpath/Brewfile
cat $bpath/Brewfile.app >> $bpath/Brewfile
cd$bpath
brew bundle

これで、アプリの重複記述を心配する必要はなくなります。

MavericksをVirtualBoxにインストールする

Mavericksは、仮想環境に2つまでインストールできます。あくまで、Mac機にのみですが。

現在確認している VirtualBox での Mavericks インストーラー起動のための要件は以下のとおりです。

・MacBook 2013 以外でVirtualBoxを使うこと

・Operating System Version: Mac OS X (64 bit)

・Base Memory: 2048 MB (larger is better)

・EFI 有効化

・場合によってチップセット ICH9 から PIIX3 に変更

ほとんどがデフォルトの設定そのままいけるのですが、MacBook 2013 以外という要件にハマりました。

$ system_profiler SPMemoryDataType

$ virtualbox --help | grep "Oracle VM VirtualBox Manager"$ rvm install 1.9.2

$ rvm use 1.9.2

$ gem install iesd

$ iesd -i /Applications/Install\ OS\ X\ Mavericks.app -o Mavericks.dmg -t BaseSystem

まず、SPMemoryDataTypeを調べています。

ECCメモリを持っているかいないかで実行するコマンドが変化してきます。

# ECCメモリを持っていない$ iesd -i /Applications/Install\ OS\ X\ Mavericks.app -o Mavericks.dmg -t BaseSystem

# ECCメモリを持っている$ iesd -i /Applications/Install\ OS\ X\ Mavericks.app -o Mavericks.dmg -t BaseSystem –remove-kexts AppleTyMCEDriver.kext

私の場合、 MacBookAir Mid 2012 では VirtualBox で Mavericks のインストーラーを起動することに成功しましたが、 MacBookAir Mid 2013 では上手くいきませんでした。

これは、イメージ実行の問題なので、イメージ作成は2012, 2013どちらで行っても構いません。

さらに、上手くインストール画面が表示されても、新たな問題が発生しました。

具体的には、ディスクユーティリティを使ってディスクを消去できない問題です。

これは、一旦、 Mavericks のインストーラーを再起動することで解決しました。

ちなみに、上記は、 VirtualBox からの再起動ではなく、あくまで Mavericks インストーラーの再起動です。

How to install OS X on VirtualBox - Robert Setiadi Website

Windows | Windows7

Windows7
Windowsで使っているアプリ
VirtualBox Guest Additions
Update
Setting
Sysinternals Suite
Microsoft Security Essentials
PowerShell
Chocolatey
Cygwin
Console Z
OpenSSH
スタートアップ

Windowsで使っているアプリ

Console 2

Windowsで使えるターミナルアプリ。ウィンドウを透過したり、キーマップを設定したりと基本的なことができます。

Cygwin

Linux環境をWindows上で再現するためのアプリ。快適です。

Microsoft Security Essentials

Windowsで使える公式セキュリティ対策ソフト。

PowerShell 4.0

Windowsで唯一まともに動くシェル。多分、一番使用するであろうアプリ。

Chocolatey

Windowsのパッケージ管理アプリ。GUIアプリも自動でインストールしてくれます。

Sysinternals Suite

Windowsで使えるミリソフト群。とてつもなく有効なアプリばかり。

AutoHotkey

Windowsのキー操作を自動化するためのアプリです。スクリプトを書くことで自動化を実現できます。

Greenshot

Windowsでスクリーンショットを撮影するためのアプリです。

Gow

Windowsのコマンドプロンプト上で基本的なLinuxコマンドを実現するためのアプリです。

MinGW

GNUの開発環境を使ってWindowsの開発を支援するためのツール群です。

Google Chrome

定番のブラウザです。ブラウザのWebコンソールが一番使いやすいので、このアプリ一択です。ブログとかやっている人は、分かる人多いかもですね。

Firefox

どちらかと言うと、Chromeよりも、Chromium。ChromiumよりもFirefoxのほうが好きですね。個人的には。

PictBear

軽量かつ安定の画像編集アプリ。個人的には一番良く使う手軽なソフトです。

AzPainter

2番目に使う画像編集アプリ。堅実で細かい部分で割と気が聞いています。

Paint.NET

定番の画像編集アプリ。個人的にはあまり合わないので、あまり使えない。

Lhaplus

個人的にはお勧めの圧縮、解凍ソフトです。ただし、バージョンによっては、脆弱であったりしますので、解凍するファイルには、気をつけてください。

WinRAR

RAR形式の圧縮に対応する圧縮、解凍ソフトです。こちらのソフトも扱いには注意が必要です。なぜなら、多くのコンピュータウィルスは、圧縮ファイルに偽装されている確率が非常に高いからです。特に、WinRARは狙われやすいソフトでもあります。

CCleaner

定番のお掃除ソフト。一時ファイル、Cookieなどを削除してくれます。レジスタの編集を補助してくれたり、スタートアップを表示してくれたりと色々と便利です。

Glary Utilities

昔愛用していたクリーナーソフト。非常におすすめでした。

KeySwap

MacBookAirを使用しているので、どうしてもキーの変更が必要になってくる場面があります。そんな時は、このソフトを使って、変更しています。

VirtualBox Guest Additions

Driverのインストール

Windows7は、仮想環境上で起動します。

まずは、これを実行しなければ始まりません。VirtualBoxで動作させるOSには必ずと言っていいほど実行しましょう。

実行方法としては、Host+Dです。

その後、コンピューターをWin+Eで開きます。そこにデバイスが表示されているはずです。これを実行します。各種ドライバがインストールされます。

Window Aeroの有効化

なお、ウィンドウの透過度を設定するAeroを有効にしたい場合は、VirtualBoxのWindowsイメージの設定でディスプレイのビデオにある3Dの設定を有効にし、3Dのドライバをインストールしましょう。

ファイル共有

ファイル共有及び、共有フォルダの作成は、VirtualBoxのメニューを開けばわかると思います。ただし、共有フォルダを扱いやすくするためには、右クリック > ネットワークドライブ割り当てを行ってください。デフォルト設定でもどこかに割り当てられてるものですが。

Update

まず行うべきなのが、Update(アップデート)です。Win+Shift+4を押し、コントロールパネルを開きます。ここで、小さいアイコンを選択します。そして、Windows Updateを選択します。

しかし、アップデートにはかなりの時間がかかります。

以下、その間に行うおすすめの設定を紹介しておきます。

Setting

マシンのスペックが弱い場合は、パフォーマンスなどを変更します。

具体的には、コントロールパネルを開き、そこで以下の項目を選択して適当に設定します。

パフォーマンスの情報とツール -> 視覚効果の調整 -> パフォーマンスを優先する

フォルダオプション -> 表示 -> 保護、拡張子、常にメニュー、隠しファイル

フォントが汚くなりますが、後述するMacTypeで割りと良くなります。

※ MacTypeがコンピュータウィルスとして検出されました。直ちに、利用を停止することをおすすめします。

フォントを変更したい方は、以下の記事を参考にしてみてください。

萌えないごみの日: Windows 7 (64bit) でシステムフォントの全入れ替え!

Sysinternals Suite

Windowsの場合、これだけではカスタマイズを行ったとは言えません。Windowsをさらに最適化させるには、Sysinternals Suiteというツールが必要になります。

このツール(正確にはツール群)は、ダウンロードする必要がありますが、これがないと、私はWindowsを使いこなすことが全くできません...。

ちなみに、Windowsでは、実行ファイルをC:\Program Filesに置くのが慣習です。

ここで、おすすめのアプリは、以下のとおりです。

アプリ内容
AccessEnumシステムのディレクトリ、ファイル、およびレジストリ キーに対してどのユーザーがどのようなアクセス権を持っているかを確認できる
Autorunsシステムの起動時やユーザーのログイン時に自動的に起動するように構成されているプログラムを確認する
Process Explorerプロセスが開いたファイル、レジストリ キーなどのオブジェクト、読み込んだ DLL などを調べる
Process Monitorファイル システム、レジストリ、プロセス、スレッド、および DLL の活動をリアルタイムで監視する
RAMMap高度な物理メモリ利用状況分析ユーティリティ
WinObj究極のオブジェクト マネージャーの名前空間ビューアー
Desktops最大で 4 つの仮想デスクトップを作成

その他にも使えるツールばかりですが、一番お勧めなおは、Process Explorerですかね。

Microsoft Security Essentials

次にインストールするべきなのがMicrosoft Security Essentials - Microsoft Windowsです。

PowerShell

PowerShell 4.0が出ていますので、インストールしてみることにしましょう。多分、Windowsでは一番に常用することになるアプリです。

ただ、ターミナルが終わっているので、変更しましょう。おすすめするのは、Cosole Zまたは、Minttyです。下記で紹介。

Chocolatey

まずは、Chocolateyのインストールからですね。これは、アプリをコマンド一つでダウロードするPackageManager(パッケージマネージャー)のようなものです。

Wind+Rを押して、cmdを起動し、以下のコマンドを実行します。

> @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))"&& SET PATH=%PATH%;%systemdrive%\chocolatey\bin

> cinst ccleaner dropbox python git vlc GoogleChrome 7zip curl gimp greenshot ConsoleZ cygwin

Cygwin

次に、Cygwinを立ち上げて、以下を実行します。これは、Windows上でLinux環境を再現するものです。

Win+R | C:\Cygwin\Cygwin.bat

しかし、デフォルトターミナルがあまりに貧弱なので、まずはminntyを起動しています。

$ mintty

apt-cyg

次に、パッケージを簡単にインストールできるようにしておきましょう。

$ cygstart /cygdrive/c/Cygwin/cygwinsetup -q -P wget, curl

$ wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg

$ chomd +x apt-cyg

$ mv apt-cyg /usr/bin

これで、apt-cygコマンドを使えるようになりました。

ちなみに、wgetのインストールは、本来なら下記のようなコマンド(powershell)になります。

> C:\Cygwin\cygwinsetup.exe -q -P wget

次に、必要なツールをインストールしていきましょう。

$ apt-cyg install zsh vim tmux git

Console Z

Console Zとは、Console 2を元に作ったターミナルです。バックグラウンドでcmdまたは、powershellを動かしてるみたいですね。

なお、ターミナルでは、Minttyもお勧めです。

ConsoleZの設定としては、以下のとおりです。

Shellの設定

Cygwinのzshを使いたい場合は、以下の様なパスを指定します。

C:\Cygwin\bin\zsh.exe --login -i

複数タブの起動

ConsoleZのショートカットを作成し、パスを以下のような感じにします。すると、タブを複数指定して起動できます。ちなみに、ショートカットを作成するのは実行ファイルを右クリックです。

C:\Chocolatey\lib\ConsoleZ.1.10.0.14089\tools\Console.exe -t "cygwin" -t "powershell"

PowerShell でショートカットを作成する - tech.guitarrapc.cóm

日本語文字のズレを解消

2バイト文字がずれる問題の対処法です。マニュアルに書いてあるとおりにします。

右クリック -> View -> Console Window

cmdが起動されるので、Alt+Spacep(プロパティ)の順にキーを押します。

Tab+Ctrlを押して、表示 -> フォントを「MS ゴシック」などの日本語フォントに変更します。

あとは、Console Zのフォントを設定してください。

ちなみに、フォントを増やすには、以下のとおりにします。

Win+R | regedit

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont

新規 ->文字列 ->'932.1'='IPAゴシック'

Windowsを再起動

Windows8:コマンドプロンプトのフォント変更 - すなばあそび。

アイコンを設定する

また、iconを設定できます。 IconsExtractを使うと実行ファイルから簡単に取得できます。

$ wget http://www.nirsoft.net/utils/iconsext.zip

$ unzip iconsext.zip

$ chmod +x iconsext.exe

$ cygstart iconsext.exe

OpenSSH

接続不能編

CygwinのOpenSSHを利用し、SSH Serverを立ち上げてみます。

サーバー
$ apt-cyg install openssh

$ ssh-host-config -y

$ cygrunsrv -S sshd

ファイアウォールの設定を変更します。ポート22を開けましょう。

クライアント
$ ssh -v cyg_server@192.168.56.101

しかし、何故かアクセス出来ないという...。接続が完了しても、すぐに閉じてしまう。原因は多分、localeの設定です。

結局、設定ファイルを変更したり、いろいろ試してみたのですが、無理でした。

C:\Cygwin/Cygwin.bat
@echo off

C:
chdir C:\cygwin\bin
set CYGWIN=binmode ntsec tty
bash --login -i
/etc/sshd_config
StrictModes no

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication yes
Port 22

接続可能編

単にパスワードが設定されてなかっただけの問題だったみたいです。よくわからない...。一応、どちらも管理者として実行をやってみました。これがほんとうに必要なのか分かりませんが。

サーバー
$ passwd

そもそも設定された名前(cyg_server)がホスト名になるわけじゃなかったみたいです。どうやら、Windowsのユーザー名(syui)を使うみたいですね。

クライアント
$ ssh -v syui@192.168.56.101

Setting Up Cygwin SSH on Windows - Oracle GlassFish Server 3.1-3.1.1 High Availability Administration Guide

セキュリティ編

パスワードでの接続が可能となったので、セキュリティを変更していきます。

まず、公開鍵の発行と送信です。

クライアント
$ ssh-keygen -t rsa

$ brew install ssh-copy-id

$ ssh-copy-id -i ~/.ssh/id_rsa.pub syui@192.168.56.101

次に、サーバーを停止し、設定ファイルを編集します。

サーバー
$ cygrunsrv -E sshd

$ vim /etc/sshd_config
/etc/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication no
Port 55101

ファイアウォールでポート55101を開けます。

あとは、サーバーを起動し、クライアントから接続するだけです。

サーバー
$ cygrunsrv -S sshd
クライアント
$ ssh syui@192.168.56.101 -p 55101

Windowsの自動ログイン

ちなみに、パスワードが設定されると、自動でログインできなくなります。Windowsの自動ログインを解除するには、以下の手順が必要です。

  1. [スタート] ボタンをクリックし、「netplwiz」と入力して、Enter キーを押します。

  2. [ユーザー アカウント] ダイアログ ボックスで、自動的にログオンするときに使うアカウントをクリックします。設定を変更できる場合は、[ユーザーがこのコンピューターを使うには、ユーザー名とパスワードの入力が必要] チェック ボックスをオフにします。

  3. [OK] をクリックします。

  4. [自動ログオン] ダイアログ ボックスでユーザーのパスワードを 2 回入力し、[OK] をクリックします。

Windows 7 で自動的にログオンするようにユーザー アカウントを構成する

PowerShellServer

PowerShellServerというものがあるらしいです。

スタートアップ

Windowsで起動時に実行するアプリは、スタートアップフォルダに入れます。私が起動時に実行するアプリとしては、以下の様な感じです。

Desktops, Cosole Z, Dropbox

スタートアップフォルダは、C:\Users\syui\AppData\Roaming\Microsoft\Windows\Start Menu\Programsにあります。

また、必要ないスタートアップは、CCleanerなどを使って消しておきましょう。

Linux | Manjaro Linux

Manjaro Linux
Arch Linuxで使っているアプリ
Manjaro LinuxをMacBookAirに直接インストールする方法
Manjaro Linux Awesomeの基本操作
Manjaro LinuxをMacの仮想環境上で動作させる方法
pacman
ibus
locale
xmodmap
awesome
spacefm
firefox
lilyterm
zsh
vim
tmux

Arch Linuxで使っているアプリ

Manjaro Linuxといっても、認知度はほとんどありませんので、表題をArch Linuxとしています。

Awesome

Linuxで動作するウィンドウマネージャー。いわゆるタイル型と言われて、ウィンドウを定形、キー操作できるのが特徴。

$ sudo pacman -S awesome

SLiM

Linuxで動作するログインマネージャー。カッコイイ!!

$ sudo pacman -S slim

SpaceFM

Linuxで動作するファイルマネージャ。軽量で処理が早く、多くの操作に適している。

$ sudo pacman -S spacefm

lilyterm

Linuxで動作するターミナルアプリ。これ以外考えられない。

$ sudo pacman -S lilyterm

dwb

Linuxで動作する軽量のインターネットブラウザ。viのキーバインドが使える。こちらの記事にまとめたので、使い方がわからない人は、読んでほしい。

$ sudo pacman -S dwb

canto

スタイリッシュなRSSリーダー。とても現代風。

$ sudo yaourt -S canto

jdownloader

Javaで動作するダウンロードマネージャーです。ファイルのダウンロードはこれ一本に任せましょう。

$ sudo pacman -S jre7-openjdk

$ sudo yaourt -S jdownloader

Manjaro LinuxをMacBookAirに直接インストールする方法

Manjaro Linuxのインストール

Manjaro Awesome WM Respin

Culinax/manjaro-awesome-respin · GitHub

まず、インストールUSBを作成しなければなりません。イメージをダウンロードして、USBに書き込みましょう。

$ hdiutil convert -format UDRW -o manjaro-awesome-0.8.8-b4.1-x86_64.dmg manjaro-awesome-0.8.8-b4.1-x86_64.iso

$ diskutil list

$ sudo diskutil umountDisk /dev/disk1

$ sudo dd if=./manjaro-awesome-0.8.8-b4.1-x86_64.dmg of=/dev/disk1 bs=1m

次に、MacBookAirに作成したUSBを挿しこみます。Altを押しっぱなしにして、電源を入れ、Manjaro Linuxを起動します。

そして、インストーラーを起動します。

インストールで重要なのは、①EFIサポートを選択すること。

ディスクパーティションでは、②オートを選択すること。

ブートローダーのインストールは、直にインストールする場合は、③UEFIを選択すること。

以上です。後の各項目はなんとかなるでしょう。設定しなくても良い項目も多いのですが、必要ある場合は、各自設定しましょう。また、ユーザー設定以外、あとで変更することは可能です。

Manjaro Linuxのカスタマイズ vol.3

Manjaro Linux Awesomeの基本操作

まずは、基本操作を確認しておきましょう。これは、awesomeというWindow Manager(ウィンドウマネージャー)の操作方法です。

デフォルトでは、Mod4 -> Commandです。

キー効果
Escキャンセル
Mod4+EnterTerminal (ターミナル)
Mod4+dBrowser (ブラウザ)
Mod4+pDMenu (D-メニュー)
Mod4+wOpen Menu (メニュー)
Mod4+tFile Manager (ファイルマネージャ)
Mod4+jFocus Next (次のウィンドウへ)
Mod4+kFocus Prev (前のウィンドウへ)
Mod4+→Desktop Next (次のデスクトップへ)
Mod4+hDecrease Master (ウィンドウを拡張)
Mod4+iIncrease Master (ウィンドウを縮小)
Mod4+fSet client fullscreen (現在のウィンドウをフルスクリーンに)
Mod4+SpaceCycle Lagouts (ウィンドウの並び替え)
Mod4+Ctrl+rRestart Awesome (再起動)
Mod4+Shift+qLogout (ログアウト、sでシャットダウン、rで再起動)

その他の基本操作は以下のとおりになっています。これらは、個別のアプリによって設定されています。よって、アプリによっては、効果が異なる場合があります。しかし、多くのアプリには、共通するキーが多いのも事実です。

キー効果
Enter選択、実行
Spaceプレビュー
Ctrl+cクリップボードにコピー
Ctrl+vクリップボードから呼び出し
Ctrl+z戻る
F1明るさを下げる
F2明るさを上げる
F10音量を下げる
F11音量を上げる
F12音量を最大に

pacman

最初に、自動実行されるスクリプトがあります。これは、ダウンロードするツールやMacBook用のドライバを自動でインストール、設定してくれるものです。

しかし、このスクリプトを有効に使うには、まずは、パッケージ管理システムを設定していかなければなりません。

よって、まず、パッケージ管理システムの設定です。

$ sudo vi /etc/pacman.conf

まず、一番下辺りの行をコメントアウトしたり、mozcインストール用の設定を書き足します。

/etc/pacman.conf
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
#CacheDir    = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
HoldPkg     = pacman glibc manjaro-system
# If upgrades are available for these packages they will be asked for first
SyncFirst   = archlinux-keyring manjaro-keyring manjaro-system pacman
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta    = 0.7
Architecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options
#UseSyslog
#Color
#TotalDownload
CheckSpace
#VerbosePkgLists

# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required

# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Manjaro Linux
# packagers with `pacman-key --populate archlinux manjaro`.

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#   - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[extra]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

#[infinality-bundle]
#SigLevel = Never
#Server = http://ibn.net63.net/infinality-bundle/x86_64

#[infinality-bundle-multilib]
#SigLevel = Never
#Server = http://ibn.net63.net/infinality-bundle-multilib/x86_64

#[infinality-bundle-fonts]
#SigLevel = Never
#Server = http://ibn.net63.net/infinality-bundle-fonts

[pnsft-pur]
SigLevel = Optional TrustAll
Server = http://downloads.sourceforge.net/project/pnsft-aur/pur/$arch

次に、pacmanのミラーサーバーの設定です。

$ sudo vi /etc/pacman-mirrors.conf
/etc/pacman-mirrors.conf
#### /etc/pacman-mirrors.conf#### Branch Pacman should use (stable, testing, unstable)Branch=stable

## Generation method## 1) rank   - rank mirrors depending on their access time## 2) random - randomly generate the output mirrorlistMethod=rank

## Specify to use only mirrors from a specific country## Disabled by defaultOnlyCountry=Japan

## Input mirrorlist directoryMirrorlistsDir="/etc/pacman.d/mirrors"## Output mirrorlistOutputMirrorlist="/etc/pacman.d/mirrors/Japan"

これが完了すると、起動時に自動実行される設定スクリプトを有効に使えるようになります。

各自、インストールしたいものを選択したり、MacBook用のドライバなどをインストールしてきましょう。

次に、インストール漏れのツールをインストールしてきます。

$ sudo pacman -Syy

$ sudo pacman -S lilyterm yaourt mozc ibus-mozc firefox jq

$ sudo pacman -Syu

$ sudo pacman -Scc

ibus

次に、日本語入力の設定です。具体的には、ibus-mozcを使います。デーモンで起動するようにしました。

$ ibus-setup

なお、ここでは、2つのショートカットキーを設定してください。何故か一つだけでは、切り替えられません。

あとは、Xのデーモンで起動するようにします。

$ sudo touch  /etc/X11/xinit/xinitrc.d/99-ibus

$ sudo chmod +x !$

$ sudo vim !$
/etc/X11/xinit/xinitrc.d/99-ibus
#!/bin/bashexport XMODIFIERS="@im=ibus"export GTK_IM_MODULE="ibus"export QT_IM_MODULE="xim"
ibus-daemon -d -x

そして、以下のファイルの最後の行を書き換えます。

~/.xinitrc
- exec"$1"
+ exec"awesome"

Xデーモンで起動する場合は、設定ファイルには、書かなくても良いですのが、一応。

~/.bashrc
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

locale

日本語のための設定は以下のように特定のファイルを書き換えたり、コメントアウトします。

/etc/locale.gen
ja_JP.EUC-JP EUC-JP
ja_JP.UTF-8 UTF-8
/etc/locale.conf
LANG=ja_JP.UTF-8
LC_MESSAGES=en_US.UTF-8

設定を読み込みます。

$ sudo locale-gen

xmodmap

次に、キーマップの設定です。

$ cd

$ cp /usr/share/kbd/keymaps/i386/qwerty/jp106.map.gz .

$ gunzip jp106.map.gz

$ mv jp106.map jp106_mac.map

$ vim jp106_mac.map
##########################################
# keycode  58 = Caps_Lock 行を編集
keycode  58 = Control
# keycode  89 = backslash underscore 行を編集
keycode  89 = underscore
##########################################

$ gzip jp106_mac.map

$ sudo mv jp106_mac.map.gz /usr/share/kbd/keymaps/i386/qwerty

$ sudo vim /etc/vconsole.conf
##########################################
KEYMAP="jp106_mac"
##########################################

$ sudo vim /etc/X11/xorg.conf.d/20-keyboard.conf
##########################################
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbModel" "jp106_mac"
Option "XkbLayout" "jp"
#Option "XkbVariant" ""
EndSection
##########################################

$ xmodmap -pke > ~/.xmodmap2

$ vim ~/.xmodmap1
##########################################
keycode 232 = F1 NoSymbol F1
keycode 233 = F2 NoSymbol F2
keycode 128 = F3 NoSymbol F3
keycode 212 = F4 NoSymbol F4
keycode 66 = Control_L NoSymbol Control_L
keycode 62 = Delete NoSymbol Delete
clear Lock
add Control = Control_L
##########################################

xmodmap1には、F1-F4までのキーを書いています。デフォルトでは、Macに対応していますので、音量や明るさなどを調整します。しかし、たまに、F1-F4を使用したいことがあるので、設定します。

これらを切り替える方法としては、私は、ウィンドウマネージャawesomeの設定に書いています。

awesome

次に、awesomeの設定を見ていきます。ここは、設定ミスによって、ウィンドウマネージャが起動せず、混乱してしまうことがありますので、注意してください。

$ vim ~/.config/awesome/rc.lua

変更する箇所としては、dwbeditorterminalあたりです。

追記するのは、xmodmap1xmodmap2ですね。

~/.config/awesome/rc.lua
-- 省略terminal="lilyterm"editor=os.getenv("EDITOR")or"vim"editor_cmd=terminal.." -e "..editor-- Default modkey.-- Usually, Mod4 is the key with a logo between Control and Alt.-- If you do not like this or do not have such a key,-- I suggest you to remap Mod4 to another key using xmodmap or other tools.-- However, you can use another modifier like Mod1, but it may interact with others.modkey="Mod4"-- 省略-- Applicationsawful.key({modkey},"[",function()awful.util.spawn_with_shell("xmodmap ~/.xmodmap1")end),awful.key({modkey},"]",function()awful.util.spawn_with_shell("xmodmap ~/.xmodmap2")end),awful.key({modkey},"d",function()awful.util.spawn_with_shell("firefox")end),awful.key({modkey},"t",function()awful.util.spawn_with_shell("spacefm")end))

私はブラウザにfirefox、ターミナルにlilytermを設定しました。

また、先ほどのF1-F4までキーを切り替えするには、Cmd+[Cmd+]を押します。

次に、壁紙でも変えてみることにします。

$ curl -O http://lh5.ggpht.com/-DBe6qOlsFVk/UxE1t1LosJI/AAAAAAAAH1U/lvVKxMKyifA/s0/arch_black.png

$ mv arch_black.png ~/.config/awesome/themes/cesious/

$ vim !$/theme.lua

ここで、background.jpgの部分をarch_black.pngに書き換えます。

反映させるには、Mod4+Ctrl+rを押し、awesomeを再起動します。

spacefm

spacefmというのは、File Manager(ファイルマネージャ)です。デフォルトでは、Mod4+tで起動するはずです。

もし起動時にインストールしていない場合は、以下のコマンドでインストールできます。

$ sudo pacman -S spacefm

右クリックのView -> Hidden Filesですべてのファイルを表示したり、View -> Columnsで表示する項目を選択したり、View -> Sortで並び替えしたりできます。

なお、nautilusのほうが完成度が高いので、そちらの方もお勧めです。

$ sudo pacman -S nautilus

$ nautilus &

firefox

次に、Firefoxの設定です。vimperatorをインストールします。

vimperatorについてですが、まずは、テーマもダウンロードしてきます。

$ cat << EOF > ~/.vimperatorrc
map j 5<C-e>
map k 5<C-y>
map a :bmark<cr>
noremap <C-b> :<C-b><esc><esc>
noremap <C-h> :<C-h><esc><esc>
complete=l
map ,b :bmarks!<space>
qmark g https://mail.google.com/
map B :bmarks! -tags
"read vimperatorrc
map S :source ~/.vimperator<cr>
EOF

$ curl https://raw.githubusercontent.com/tlync/vimperator-addons/master/colors/vimplight.vimp >> ~/.vimperatorrc

さて、Manjaro Linuxもだいぶ便利になってきた感がありますが、ここからがカスタマイズの本番です。

lilyterm

まずは、lilytermの設定から行っていきましょう。

CUIから設定してもいいのですが、分かりやすいのは、GUIからの設定です。

$ lilyterm &

起動後、右クリックで設定できます。

ちなみに、lilytermは、設定したら、以下の項目を選択し、セーブする必要があります。

フォントは、DejaVu Sans Monoというものを使用しています。非常に良いフォントです。powerlineとの相性も良いです。

キーバインドは、Tab operationからAdd new tabを変更したり、Text operationからCopy to clipboardPaste the textを変更したりと最低限の設定をしておきましょう。

あとは、Backgroundにて、ウィンドウの透過度を設定すると良いかもしれません。

一応、設定ファイルの編集方法を載せておきます。

$ vim ~/.config/lilyterm/default.conf

zsh

まずは、各種設定ファイルに必要なものをインストールします。

タイトルURL
tmux-colors-solarizedhttps://github.com/seebi/tmux-colors-solarized
tmux-powerlinehttps://github.com/erikw/tmux-powerline
zhttps://github.com/rupa/z
zawhttps://github.com/zsh-users/zaw
zsh-syntax-highlightinghttps://github.com/zsh-users/zsh-syntax-highlighting
neobundle.vimhttps://github.com/Shougo/neobundle.vim
~/install.sh
#!/bin/sh

git clone https://github.com/seebi/tmux-colors-solarized ~/dotfiles/.tmux/tools/tmux-colors-solarized
git clone https://github.com/erikw/tmux-powerline ~/dotfiles/.tmux/tools/tmux-powerline

git clone https://github.com/rupa/z ~/dotfiles/.zsh/tools/z
git clone https://github.com/zsh-users/zaw ~/dotfiles/.zsh/tools/zaw
git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/dotfiles/.zsh/tools/zsh-syntax-highlighting

git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim

そして、zshに最低限の設定をしてみました。

$ ./install.sh
~/.zshrc
autoload -U compinit colors zcalc
compinit
colors

setopt correct          # Auto correct mistakes
setopt extendedglob     # Extended globbing
setopt nocaseglob       # Case insensitive globbing
setopt rcexpandparam    # Array expension with parameters
setopt nocheckjobs      # Don't warn about running processes when exiting
setopt numericglobsort  # Sort filenames numerically when it makes sense
setopt nohup            # Don't kill processes when exiting
setopt nobeep           # No beep
setopt appendhistory    # Immediately append history instead of overwriting
setopt histignorealldups #If a new command is a duplicate, remove the older one

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'# Case insensitive tab completion
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"# Colored completion (different colors for dirs/files/etc)

bindkey -e
bindkey '^[[7~' beginning-of-line                   # Home key
bindkey '^[[8~' end-of-line                         # End key
bindkey '^[[2~' overwrite-mode                      # Insert key
bindkey '^[[3~' delete-char                         # Delete key
bindkey '^[[A'  up-line-or-history                  # Up key
bindkey '^[[B'  down-line-or-history                # Down key
bindkey '^[[C'  forward-char                        # Right key
bindkey '^[[D'  backward-char                       # Left key
bindkey '^[[5~'history-beginning-search-backward   # Page up key
bindkey '^[[6~'history-beginning-search-forward    # Page down keyHISTFILE=~/.zhistory
HISTSIZE=10000
SAVEHIST=10000

# ex - archive extractor# usage: ex <file>
ex(){if[ -f $1];then    case$1 in
      *.tar.bz2)   tar xjf $1;;
      *.tar.gz)    tar xzf $1;;
      *.bz2)       bunzip2 $1;;
      *.rar)       unrar x $1;;
      *.gz)        gunzip $1;;
      *.tar)       tar xf $1;;
      *.tbz2)      tar xjf $1;;
      *.tgz)       tar xzf $1;;
      *.zip)       unzip $1;;
      *.Z)         uncompress $1;;
      *.7z)        7z x $1;;
      *)echo"'$1' cannot be extracted via ex()";;esac  elseecho"'$1' is not a valid file"fi}# prompt#PROMPT="[%n@%m %1~] "#RPROMPT="%{$fg[red]%}%(?..[%?])%{$reset_color%}"source ~/dotfiles/.zsh/.zshrc.prompt

# openalias open="xdg-open"#alias open="gnome-open"#alias open="cygstart"# aliasalias sudo='sudo 'alias ls='ls --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'alias ll='ls -l --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'alias la='ls -la --group-directories-first --time-style=+"%d.%m.%Y %H:%M" --color=auto -F'alias grep='grep --color=tty -d skip'alias cp="cp -i"# Confirm before overwriting somethingalias df='df -h'# Human-readable sizesalias free='free -m'# Show sizes in MBalias zs="vim ~/.zshrc"alias zr="exec $SHELL"alias vs="vim ~/.vimrc"alias vr="vim +so $VIMRC"alias ts="vim ~/.tmux.conf"alias tmux="tmux -2"alias ls='ls --color=auto -a'alias ll="ls -slhAF"alias cp="cp -v"alias mv-all="mv */* . && rmdir * > /dev/null 2>&1"# zawsource$HOME/dotfiles/.zsh/tools/zaw/zaw.zsh

# mkcd# http://d.hatena.ne.jp/yarb/20110126/p1function mkcd(){if[[ -d $1]];thenecho"It already exsits! Cd to the directory."cd$1elseecho"Created the directory and cd to it."
mkdir -p $1&&cd$1fi}# pbcopy-buffer# http://d.hatena.ne.jp/hiboma/20120315/1331821642
pbcopy-buffer(){
print -rn $BUFFER| xclip -i -selection clipboard
zle -M "xclip: ${BUFFER}"}
zle -N pbcopy-buffer
bindkey '^p^p' pbcopy-buffer

#google-searchfunction google-search(){local str opt
if[$ != 0 ];thenfor i in $*;dostr="$str+$i"donestr=`echo$str| sed 's/^\+//'`opt='search?num=50&hl=ja&lr=lang_ja'opt="${opt}&q=${str}"fi
w3m http://www.google.co.jp/$opt}# complete
autoload -U compinit
compinit
zstyle ':completion:*:default' menu select=2
zstyle ':completion:*' verbose yes
zstyle ':completion:*' completer _expand _complete _match _prefix _approximate _list _history
zstyle ':completion:*:messages' format '%F{YELLOW}%d'$DEFAULT
zstyle ':completion:*:warnings' format '%F{RED}No matches for:''%F{YELLOW} %d'$DEFAULT
zstyle ':completion:*:descriptions' format '%F{YELLOW}completing %B%d%b'$DEFAULT
zstyle ':completion:*:options' description 'yes'
zstyle ':completion:*:descriptions' format '%F{yellow}Completing %B%d%b%f'$DEFAULT
zstyle ':completion:*' list-separator '-->'
zstyle ':completion:*:manuals' separate-sections true
zstyle ':completion:*' group-name ''# zaw
bindkey '^x^x' zaw
bindkey '^h' zaw-history

# cdpwdfunction chpwd(){ ls -aF }# color
autoload colors
colors
source$HOME/dotfiles/.zsh/tools/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

# codeexport LANG=ja_JP.UTF-8

# tmux startif[ -z "$TMUX" -a -z "$STY"];thenif type tmux >/dev/null 2>&1;thenif tmux has-session && tmux list-sessions | /usr/bin/grep -qE '.*]$';then
tmux attach &&echo"tmux attached session "else
tmux new-session &&echo"tmux created new session"fififi# Android Mountalias android="mkdir -p ~/Android && go-mtpfs ~/Android && lll || fusermount -u ~/Android"# clipboardif which pbcopy >/dev/null 2>&1 ;then# Macalias -g C='| pbcopy'elif which xclip >/dev/null 2>&1 ;then# Linuxalias -g C='| xclip --input --clipboard'elif which putclip >/dev/null 2>&1 ;then# Cygwinalias -g C='| putclip'fi# autojump#export FPATH="$FPATH:/usr/share/zsh/site-functions/"#[[ -s $HOME/.autojump/etc/profile.d/autojump.sh ]] && source $HOME/.autojump/etc/profile.d/autojump.sh# zsource$HOME/dotfiles/.zsh/tools/z/z.sh
compctl -U -K _z_zsh_tab_completion ${_Z_CMD:-z}alias j="z"

ちなみに、promptについては、こちら。

~/dotfiles/.zsh/.zshrc.prompt
# PROMPT {{{

setopt prompt_subst
setopt prompt_percent
setopt transient_rprompt

color256(){local red=$1;shift    local green=$2;shift    local blue=$3;shift    echo -n $[$red * 36 + $green * 6 + $blue + 16]}

fg256(){echo -n $'\e[38;5;'$(color256 "$@")"m"}

bg256(){echo -n $'\e[48;5;'$(color256 "$@")"m"}

zstyle ':vcs_info:*' max-exports 3
zstyle ':vcs_info:hg:*' get-revision true
zstyle ':vcs_info:hg:*' use-simple true

autoload -Uz is-at-least
zstyle ':vcs_info:git:*' check-for-changes true
zstyle ':vcs_info:git:*' stagedstr "-"
zstyle ':vcs_info:git:*' unstagedstr "+"

zstyle ':vcs_info:git:*' formats '%K{green}%F{black}▶%k%f%%F{white}%K{green} %s %f%k%K{blue}%F{green}▶%k%f%%F{white}%K{blue} %b %f%k%K{black}%F{blue}▶%k%f%%F{white}%K{black} %c%u %f%k'

autoload -Uz vcs_info
prompt_bar_left_self="%{%F{white}%K{blue}%}  %n%{%k%f%}%{%F{white}%K{blue}%}@%{%k%f%}%{%F{white}%K{blue}%}%m %{%k%f%}%{%B%F{blue}%K{blue}%}%{%b%f%k%}%K{cyan}%F{blue}▶%k%f%{%B%F{white}%K{cyan}%}  [%~]  %{%k%f%b%}%{%k%f%}%K{red}%F{cyan}▶%k%f%(?.%F{white}%K{red}%}  COMP  %k%f.%B%K{red}%F{red}%}  ERROR  %b%k%f)%{%K{green}%F{red}▶%k%f%F{white}%K{green}%}  -%h  %{%k%f%}%K{black}%F{green}▶%k%f"#TMUX_POWERLINE_SEPARATOR_LEFT_BOLD="◀"#TMUX_POWERLINE_SEPARATOR_LEFT_THIN="❮"#TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD="▶"#TMUX_POWERLINE_SEPARATOR_RIGHT_THIN="❯"prompt_bar_left="${prompt_bar_left_self} ${prompt_bar_left_status} ${prompt_bar_left_date}"prompt_left='%{%F{white}%K{black}%}  $SHELL  %{%k%f%}%{%K{white}%F{black}▶%k%f%B%F{black}%K{white}%} %# %{%b%k%f%f%}%K{black}%F{white}▶%k%f '

count_prompt_characters(){
    print -n -P -- "$1"| sed -e $'s/\e\[[0-9;]*m//g'| wc -m | sed -e 's/ //g'}

update_prompt(){local bar_left_length=$(count_prompt_characters "$prompt_bar_left")local bar_rest_length=$[COLUMNS - bar_left_length]local bar_left="$prompt_bar_left"local bar_right_without_path="${prompt_bar_right:s/%d//}"local bar_right_without_path_length=$(count_prompt_characters "$bar_right_without_path")# local max_path_length=$[bar_rest_length - bar_right_without_path_length]bar_right=${prompt_bar_right:s/%d/%(C,%${max_path_length}<...<%d%<<,)/}bar_right="%${bar_rest_length}<<${separator}${bar_right}%<<"PROMPT="${bar_left}${bar_right}"$'\n'"${prompt_left}"RPROMPT="%K{white}%F{black}▶%k%f%{%F{black}%K{white}%} %l  %K{black}%F{white}▶%k%f%{%k%f%}%{%F{white}%K{black}%}  $LANG  %{%k%f%}"case"$TERM_PROGRAM" in
        Apple_Terminal)RPROMPT="${RPROMPT}";;esacLANG=C vcs_info >&/dev/null
    if[ -n "$vcs_info_msg_0_"];thenRPROMPT="${vcs_info_msg_0_}${RPROMPT}"fi}precmd_functions=($precmd_functions update_prompt)# }}}

vim

vimの最低限の設定をしてみました。といっても、主に見た目を変えているだけですが。

ただし、中には、+luaでないと動作しないプラグインもあります。そういう時は、vimを再コンパイルするか、gvimをインストールしてくださいな。

$ sudo pacman -S gvim
~/.vimrc
if has('vim_starting')set nocompatible               " Be iMproved   set runtimepath+=~/.vim/bundle/neobundle.vim/ endif call neobundle#rc(expand('~/.vim/bundle/'))" Let NeoBundle manage NeoBundle
 NeoBundleFetch 'Shougo/neobundle.vim'" Recommended to install NeoBundle 'Shougo/vimproc', {  \ 'build' : {  \     'windows' : 'make -f make_mingw32.mak',  \     'cygwin' : 'make -f make_cygwin.mak',  \     'mac' : 'make -f make_mac.mak',  \     'unix' : 'make -f make_unix.mak',  \    },  \ }NeoBundle "Shougo/unite.vim"NeoBundle "Shougo/neosnippet.vim"NeoBundle "Shougo/neosnippet-snippets"NeoBundle "Shougo/vimfiler.vim"NeoBundle "Shougo/neocomplete.vim"NeoBundle "kana/vim-textobj-user"NeoBundle "tpope/vim-surround"NeoBundle "syui/airsave.vim"NeoBundle "osyo-manga/vim-over"NeoBundle "sudo.vim"NeoBundle "Lokaltog/vim-easymotion"NeoBundle "rhysd/clever-f.vim"NeoBundle "Lokaltog/vim-powerline"" color theme
NeoBundle 'nanotech/jellybeans.vim'
NeoBundle 'w0ng/vim-hybrid'
NeoBundle 'vim-scripts/twilight'
NeoBundle 'jonathanfilip/vim-lucius'
NeoBundle 'jpo/vim-railscasts-theme'
NeoBundle 'altercation/vim-colors-solarized'
NeoBundle 'vim-scripts/Wombat'
NeoBundle "tomasr/molokai"
NeoBundle "vim-scripts/rdark"
filetype plugin indent on
NeoBundleCheck

" keymapinoremap <silent><C-j> <ESC>inoremap <silent>jj <ESC>nmap <C-p> "*p
nmap Q :q!<CR>

" colorcolorscheme molokaisyntax onset t_Co=256" clipboard
set clipboard=unnamedplus,unnamed

" swapset noswapfile" number
set number

" encodeset encoding=utf-8"vim-over
nnoremap <silent> <C-n> :OverCommandLine<CR>%s/

" airsave.vimnmap <Leader>s  <Plug>(AutoWriteStart)nmap <Leader>ss <Plug>(AutoWriteStop)let g:auto_write = 1" easymotion
let g:EasyMotion_keys='hjklasdfgyuiopqwertnmzxcvb'let g:EasyMotion_leader_key=";"let g:EasyMotion_grouping=1

" powerline
set laststatus=2
let g:Powerline_symbols ='unicode'

tmux

tmuxの最低限の設定を自分なりに考えてみました。

~/.tmux.conf
set-option -g status on
set-option -g status-interval 2
set-option -g status-utf8 on
set-option -g status-justify "centre"set-option -g status-left-length 60
set-option -g status-right-length 90
set-option -g status-left "#(~/dotfiles/.tmux/tools/tmux-powerline/powerline.sh left)"set-option -g status-right "#(~/dotfiles/.tmux/tools/tmux-powerline/powerline.sh right)"bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind H resize-pane -L 5
bind J resize-pane -D 5
bind K resize-pane -U 5

set -g status on
set -g status-utf8 on

# Color# set-option -g default-terminal "screen-256color"#### COLOUR (Solarized 256)

unbind r
bind r source-file ~/.tmux.conf

# default statusbar colorsset-option -g status-bg colour235 #base02set-option -g status-fg colour136 #yellowset-option -g status-attr default

# default window title colorsset-window-option -g window-status-fg colour244 #base0set-window-option -g window-status-bg default
#set-window-option -g window-status-attr dim# active window title colorsset-window-option -g window-status-current-fg colour166 #orangeset-window-option -g window-status-current-bg default
#set-window-option -g window-status-current-attr bright# pane borderset-option -g pane-border-fg colour235 #base02set-option -g pane-active-border-fg colour240 #base01# message textset-option -g message-bg colour235 #base02set-option -g message-fg colour166 #orange# pane number displayset-option -g display-panes-active-colour colour33 #blueset-option -g display-panes-colour colour166 #orange# clockset-window-option -g clock-mode-colour colour64 #green# Use vim keybindings in copy mode
setw -g mode-keys vi

# prefix key# Set the prefix to ^T.
unbind C-b
set -g prefix ^T
bind t send-prefix

# clipboard = xclip#bind C-c run "tmux show-buffer | xclip -i -selection clipboard"bind C-c run "tmux choose-buffer | xclip -i -selection clipboard"# [p]pastebind p paste-buffer

# [cEnter]copy selectbind -t vi-copy Enter copy-selection
bind-key -t vi-copy Enter copy-pipe "xclip -i -selection clipboard"# [cY]copy 1 linebind -t vi-copy Y select-line

# [y]copy 1 line#bind y run 'tmux copy-mode\; send-keys Y Enter'bind y run 'tmux copy-mode\; send-keys Y'bind -t vi-copy V begin-selection
# [v]copy allbind v run 'tmux copy-mode\; send-keys ggVG Enter'# http://d.hatena.ne.jp/naoya/20130108/1357630895bind C-t run "tmux last-pane || tmux last-window || tmux new-window"# endbind K kill-pane

prefixtに変更したので、C-bではなく、C-tとなります。

ちょっとtmux-powerlineifstatが動作しませんので、Linux用のスクリプトを書いてみました。

~/dotfiles/.tmux/tools/tmux-powerline/segments/ifstat.sh
#!/bin/sh# Show network statistics for all active interfaces found.

run_segment(){rx=`ifstat -j | jq '.kernel[].rx_bytes'| head -n 1`tx=`ifstat -j | jq '.kernel[].tx_bytes'| head -n 1`rx=`expr $rx / 10000000`tx=`expr $tx / 10000000`ifs=$(echo"⇊ 0.${rx} ⇈ 0.${tx}")echo$ifs}

上手くいかない場合は、割り算、expr $tx / 10000000の値でも変更してみましょう。

元のスクリプトを残しておきたい場合は、OSを判断する処理を書きます。

Manjaro LinuxをMacの仮想環境上で動作させる方法

Virtual Manjaro Linuxの初期設定

仮想環境として直にインストールする場合と比較し、異なる部分としては、まず、ブートローダーの設定にて、BIOSを選択します。

あとは、awesomemodkey = "Mod1"くらいでしょうか。

$ sed -ie 's/Mod4/Mod1/g' ~/.config/awesome/rc.lua

この設定は、CmdAltに変更するものです。

ホストOSからゲストOSへのSSH接続を可能にする

その他、SSH接続に関して説明します。具体的には、以下の様な接続を確立します。

ホストOSからゲストOSへのSSH接続を可能にする

外部(WAN)からゲストOSへの接続を制限する

ゲストOSから外部(WAN)への接続を許可する

これは、主に、ホストOSからのリモートアクセスのみを可能にする設定です。

この場合、ホストは、Mavericksです。ゲストは、Manjaro Linuxです。

まず、VirtualBoXの設定ですね。Cmd+,を押して、VirtualBoxのネットワーク設定を行います。具体的には、NATネットワークホストオンリーネットワークに設定を追加します。追加する項目は、デフォルトでいいでしょう。設定には、DNSなども含まれるため、アドレスを固定したい場合などは、適時変更してください。

次に、ゲストOSのネットワーク設定です。簡単には、ゲストOSのネットワーク設定でアダプタ1をNAT準仮想化ネットワークにします。次に、アダプタ2でホストオンリーアダプター準仮想化ネットワークにします。

設定を終えたら、ホストからゲストに通信ができるかを確認してみましょう。

まずは、LAN Address(アドレス)の確認からですね。基本的に、Arch Linuxにはifconfigが入ってないので、インストールしておきましょう。

ゲストOS
$ sudo pacman -S net-tools

$ ifconfig

$ ifconfig | tr ' ''\n'| grep 192
ホストOS
$ ping 192.168.56.101

では、次に、SSH Server(サーバー)の設置と、場合によっては、Firewall(ファイアウォール)の設定を変更しなければなりません。

具体的には、SSH ServerをDaemon(デーモン)で起動し、サーバーに設定した接続ポートへのアクセスをFirewallに許可させなければなりません。

SSH Serverの設定を変更します。ここでは、デフォルトのままで良いです。変更したい方は、変更して下さい。

Setting
$ sudo vim /etc/ssh_config

SSH Serverを起動します。

Start
$ sudo systemctl start sshd

SSH Serverを起動時に有効にします。

Daemon
$ sudo systemctl enable sshd.service

では、ホストOSからゲストOSのSSH Serverに接続してみましょう。

SSH
$ ssh manjaro@192.168.56.101

といっても、このままのサーバー設定では非常に危険ですので、練習のためにもSSH Server、Firewallの設定を変更してみましょう。まあ、VirtualBoxの設定で一応安全な設定を選択してますが。

公開鍵の発行と受け渡しです。

クライアント
$ ssh-keygen -t rsa

$ brew install ssh-copy-id

$ ssh-copy-id -i ~/.ssh/id_rsa.pub manjaro@192.168.56.101

サーバー側の設定を変更します。最低限のセキュリティを強化します。

/etc/ssh/sshd_config
Port 55010

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

PasswordAuthentication no

SShデーモンの再起動は以下のコマンドを実行します。

$ sudo systemctl restart sshd

接続は、以下の様な感じで行えます。

$ ssh manjaro@192.168.56.101 -p 55010

Firewallを有効にし、ステータスを確認します。

Firewall
# 有効$ sudo ufw enable# ローカルネットワーク(192.168.56.1-3)からの特定のポートへの接続を許可$ sudo ufw allow proto tcp from 192.168.56.1 to any port 22
$ sudo ufw allow proto tcp from 192.168.56.1 to any port 55010

# ステータス$ sudo ufw status

# Firewallをデーモンで起動する$ sudo systemctl start ufw
$ sudo systemctl enable ufw

ちなみに、アドレスの固定方法ですが、VirtualBoxの設定からの方法が最も簡単です。

ネットワーク ->ホストオンリーネットワーク

vboxnet0, vboxnet1, vboxnet2 のように複数作成します。

各自アドレスを変更します。ゲストのアドレスは、ホストのアドレスと合わせてください。

先ほど設定したホストオンリーネットワークのvboxnet"n"を各種OSのネットワーク設定に指定します。

# Arch Linux
アダプタ: 192.168.56.1, DHCPサーバー: 192.168.56.101

# Windows
アダプタ: 192.168.57.1, DHCPサーバー: 192.168.57.101

# CentOS
アダプタ: 192.168.58.1, DHCPサーバー: 192.168.58.101

この設定により、接続コマンドを固定できます。

Secure Shell (日本語) - ArchWiki

Uncomplicated Firewall - ArchWiki

相変わらず、Arch Wikiの充実度はすごい...。

私が Arch ないしは、 Arch 派生のOSを好んで使用する主な理由は、このWikiが理由の一つだったりします。

Linux | Kail Linux

Kail Linux
Kail Linxuで使っているアプリ

Kail Linuxで使っているアプリ

MetaSploit

脆弱性関連の基本情報はこちらで確認できます。このアプリは、Exploitの中核、または最終段階で使用されることが多いアプリです。また、様々なアプリとの連携を可能にします。

Aircrack-ng

無線LANのパスワードをクラックできるアプリです。まずパケットを集め、時間をかけて予想されるパスワードを組み合わせていきます。

WireShark

パケット解析アプリです。ネットワーク情報は、パケットを解析することで明らかになります。

Nmap

ネットワークスキャンアプリ。主に、WAN上の不明確なネットワークをスキャンするために使用されます。Exploitの初期段階で使用されることが多いアプリです。

Ophcrack

定番のパスワードクラックアプリです。パスワードクラックには、辞書による解読よりも、分散処理によるブルートフォースが有効になりつつある今日です。そのため、セキュリティ強化には、アタックするための回数を制限する処置が必須。

Tips | おまけ

cygstart

cygstartはmacでいうopenのようなものです。

cygwinにwgetとcurlをインストール
$ cygstart /cygdrive/c/Cygwin/cygwinsetup -q -P wget, curl

ちなみに、Linuxの場合は、以下の様なコマンドが使えます。

現在のディレクトリをファイルマネージャーで開く
$ xdg-open .

$ gnome-open .

ssh-copy-id

公開鍵をサーバー側に渡します
$ ssh-keygen -t rsa

$ brew install ssh-copy-id

$ ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.56.101

openssh

sshは高速化することができます。moshを使っても良いです。

/etc/ssh/ssh_config
Host examplehost.com
  ControlMaster auto
  ControlPersist yes
  ControlPath ~/.ssh/socket-%r@%h:%p
 Compression yes
 AddressFamily inet

ifconfig

ローカルIPアドレスを表示する
$ ifconfig | tr ' ''\n'| grep 192

LINK

グローバルIPアドレスを表示する
$ curl -s ipinfo.io | jq -r .ip

$ curl ifconfig.me

lilyterm

Linuxでのターミナルアプリは、lilytermがおすすめです。

$ sudo pacman -S lilyterm

Sysinternals Suite

Windowsでは、Sysinternals Suiteが特に使えます。

さいごに

Tipsでもなんでも良いので、コメントにて補足の方をよろしくお願いします。便利なこととか、コマンドとかあれば、是非教えてください。


tmux使用時vimでインサートモードの時カーソルの形を変える

$
0
0

インサートモード時にカーソルの形を縦棒にする

if exists('$TMUX')
  let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=1\x7\<Esc>\\"
  let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0\x7\<Esc>\\"
else
  let &t_SI = "\<Esc>]50;CursorShape=1\x7"
  let &t_EI = "\<Esc>]50;CursorShape=0\x7"
endif

参考
tmux escape codes
andyfowler/.vimrc

ぺちぱーな俺の.vimrc

$
0
0
"" Vundle """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
" alternatively, pass a path where Vundle should install plugins
"let path = '~/some/path/here'
"call vundle#rc(path)

" let Vundle manage Vundle, required
Plugin 'gmarik/vundle'
" Keep Plugin commands between here and filetype plugin indent on.
Plugin 'editorconfig/editorconfig-vim'
Plugin 'altercation/vim-colors-solarized'
Plugin 'scrooloose/nerdtree'
Plugin 'Valloric/YouCompleteMe'

filetype plugin indent on     " required
" To ignore plugin indent changes, instead use:
"filetype plugin on
"
" Brief help
" :PluginList          - list configured plugins
" :PluginInstall(!)    - install (update) plugins
" :PluginSearch(!) foo - search (or refresh cache first) for foo
" :PluginClean(!)      - confirm (or auto-approve) removal of unused plugins
"
" see :h vundle for more details or wiki for FAQ
" NOTE: comments after Plugin commands are not allowed.
" Put your stuff after this line

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 

"" シンタックスハイライトをon
syntax enable

"" 各種ファイルの保存先指定
:set viminfo+=n~/.vim/
:set directory=~/.vim/tmp/swp
:set backupdir=~/.vim/tmp/back

"" 文字コード、ファルフォーマット
:set encoding=utf-8
:set fileencoding=utf-8
:set fileencodings=utf-8,iso-2022-jp,euc-jp,ucs-2,cp932,sjis
:set fileformats=unix,dos,mac

"" 全角文字を全角表示で
:set ambiwidth=double

"" クリップボード使用
:set clipboard=unnamed

"" ステータスライン設定
:set statusline=%F%m%r%h%w\ [%{&ff}]\ [%04l,%04v][%p%%]
:set laststatus=2 

"" 自動再読み込み
:set autoread

"" 挿入モードに入る時に表示
:set showmode

"" 対応する括弧をハイライト
:set showmatch

"" 自動インデント
" :set autoindent
:set smartindent
"" タブで空白入力
:set expandtab
"" インデント文字数
:set tabstop=4
:set shiftwidth=4
:set softtabstop=0

"" インクリメンタルサーチon
:set incsearch
"" 検索時に大文字小文字を区別しない
:set ignorecase
"" 検索語に大文字を含む場合は大文字小文字を区別する
:set smartcase

"" 自動でコメントアウトされちゃうのやめる 
autocmd FileType * setlocal formatoptions-=ro

"" Custom Key Map """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 

"" Esc連打でワードハイライトをオフにする
set hlsearch
nmap <Esc><Esc> :nohlsearch<CR><Esc>

"" 新規タブウィンドウ
nnoremap <silent> ,t :tabe<CR> 

"" ツリー表示切り替え
nnoremap <silent> ,o :NERDTreeCWD<CR> 
nnoremap <silent> ,oo :NERDTreeToggle<CR> 

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 

" Open junk file."{{{
command! -nargs=0 JK call s:open_junk_file()
function! s:open_junk_file()
  let l:junk_dir = $HOME . '/.vim/tmp/junk/'. strftime('/%Y/%m')
  if !isdirectory(l:junk_dir)
    call mkdir(l:junk_dir, 'p')
  endif

  let l:filename = input('Junk Code: ', l:junk_dir.strftime('/%Y-%m-%d.'))
  if l:filename != ''
    execute 'edit ' . l:filename
  endif
endfunction"}}}

"" for php
autocmd FileType php set makeprg=php\ -l\ %
autocmd BufWritePost *.php silent make | if len(getqflist()) != 1 | copen | else | cclose | endi

"" for golang
exe "set rtp+=".globpath($GOPATH, "src/github.com/nsf/gocode/vim")
set completeopt=menu,preview

"" solaraized設定
set background=dark
colorscheme solarized
let g:solarized_termcolors=256

"" python
let g:ycm_path_to_python_interpreter = '/usr/bin/python'

快適よ?

[一日一Vim](その5)選択した文字列をペーストで置き換えると、次にペーストされる文字は置き換え前の文字になるのをどうにかしたい。

$
0
0

どうにかしたいこと

以下のようなテキストがあったとして

var1 = "こんにちは Qiita!!";
var2 = "Hello Qiita!!";

文字列の中身を"hogehoge" で置き換えたい!って時に
すでに"hogehoge"がヤンクされているとして
一個目の文字列をvi"で選択してpで置き換え
ニ個目の文字列に移動してvi"で選択してpで置き換え
ってすると、ニ個目は"こんにちは Qiita!!"がペーストされます。

置換でやればいいんですが、今回は別の方法ということで...

vim-operator-replace

その2@X___MOON___Xさんが教えてくださったサイト
vim-operator-replace というプラグインが紹介されていました。
その説明に「レジスタを汚さないでテキストオブジェクトをヤンクしたテキストに置き換える」
とあります。ほうほう。早速入れてみました。
インストール時に参考にしたのはこちらのサイト

使ってみた

さっきの例でいうと。まず"hogehoge"をヤンクしておきます。
そして一つ目の文字列を選択してRi"
二つ目を選択してRi"

期待通りの結果になりました。便利!

ただ。。。

これを使うと、どこからどこまでが置換範囲なのかよくわからないということが難点です。
"0pをどこかのキーにバインドして(例えばP)、vi" ->Pとする方が私の要望に
あっているのかもしれません。

【mac限定】ビジュアルモードでURLを選択して ctrl+o でブラウザを開く

$
0
0

.vimrcに以下を追記

vnoremap <C-o> y:!open<Space><C-r>"<CR><CR>

選択部分をyankしてopenコマンド実行しているだけですが

Togglable な option を便利にする

$
0
0

本記事は Vim Advent Calendar 2013の 135 日目です。
134 日目は @tyruさんによる、Vimでコマンドライン履歴を消す方法でした。

解説

Vim の一部のオプションは bang することで toggle できるようになっています。

" ! (bang) で toggle。" これだけ vimrc に書いても役に立ちません。setlnumber!setlwrap!

これを

" ? は現在の option 設定の表示。" toggle 後の設定を表示する。setlnumber!|number?
setlwrap!|wrap?

こうして

command! Numbertoggle setlnumber!
command! Wraptoggle setlwrap!

コマンド化したり

nnoremap<F2> Numbertoggle
nnoremap<F3> Wraptoggle

map しておくと便利です。F キーの F は不浄の Fです。

以上

Vim Advent Calendar 2013 135 日目の記事でした、次回 136 日目は @manga_osyo さんのVim script で関数のデフォルト引数を設定したいでした。

colorscheme にマッチした highlight 設定を追加する

$
0
0

本記事は Vim Advent Calendar 2013の 137 日目です。
136 日目は @manga_osyo さんのVim script で関数のデフォルト引数を設定したいでした。

highlight を追加したい場面

Vim で日本語を扱う上で便利な設定、例えば IM が有効になっている場合にカーソルの色を変えたり、全角スペースを表示させたりするような設定はおよそ highlight 設定を用いてなされる場合が多いです。

  augroup UsingJapanese
    au!
    autocmd ColorScheme * highlight CursorIM guibg=Purple guifg=NONE
    autocmd VimEnter,ColorScheme * highlight IdeographicSpace term=underline ctermbg=DarkGreen guibg=DarkGreen
    autocmd VimEnter,WinEnter * match IdeographicSpace / /
  augroup END

highlight 設定なので colorscheme を変更した際に削除されないよう autocmd ColorScheme設定で行いますが、変更する色は固定なのでどの colorscheme でも同じ色にしか設定できません。

解決策

既に定義されている highlight 定義と link して設定します。

まず :hiして既存の定義一覧を確認して、よさ気な色を探します。
見つけたら、highlight def linkします。

  augroup UsingJapanese
    au!
    autocmd ColorScheme * highlightdef link CursorIM Search
    autocmd VimEnter,ColorScheme * highlightdef link IdeographicSpace Visual
    autocmd VimEnter,WinEnter * match IdeographicSpace / /
  augroup END

例では CursorIM を Search (検索ワードのハイライト色) に、全角スペース定義 IdeographicSpace を Visual (Visual モード選択時の色) にリンクさせています。IM のほうはともかく、全角スペースはわりとそれっぽくなります。

そもそも全角スペースを表示するプラギンねーの?

という話題になったので、やってみました。

https://github.com/0xBADDCAFE/vim-highlightIdeographicSpace

というより、ほぼ以下の記事のままです。

http://vim-users.jp/2009/07/hack40/

ドキュメントもない。すいません。

はい

以上 Vim Advent Calendar 2013 137 日目の記事でした、次回 138 日目は @manga_osyo さんのneobundle.vim でリポジトリ内の任意のディレクトリをプラグインとして読み込むでした。

香り屋gvimでマークダウンのファイルをシンタックスハイライトする方法@Mac

$
0
0

syntax 定義ファイルを持ってくる

syntax 定義ファイルを配置する

  • /Applications/MacVim.app/Contents/Resources/vim/runtime/syntax 配下に配置する

配置したsyntax定義ファイルを読み込むようにする

  • :echo $VIMRUNTIMEして出るパス配下にftdetectディレクトリを作成

    /Applications/MacVim.app/Contents/Resources/vim/runtime/ftdetect

  • 上書き定義記載のvimファイル配置

    /Applications/MacVim.app/Contents/Resources/vim/runtime/ftdetect/mkd.vim
    " MarkdownauBufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.md setfiletype={syntax配下に配置したvimファイル名}
    

以上でmd形式のファイルを開いたときにハイライトされるようになる

その他

  • 無名ファイルにmkdを適用する
    set ft=mkd

Markdown Viewer @Web

Markdown Viewer @local

参考リンク


マークダウン記法チートシート


[一日一Vim](その6)マクロ

$
0
0

マクロ

一定の動作を繰り返し行いたいなんてのは
よくあることですが。

vim では qaで記録して qで記録終了
@aでマクロ実行のようです。

ただ、そのマクロを保存しておく。
とかはどうするんでしょうね。
そのあたり、調べておきたいと思います。

参考サイト

http://www.ksknet.net/vi/vim_-.html

[一日一Vim](その7)VIMでタブの位置を変える

$
0
0

参考サイト

http://hail2u.net/blog/software/vim-move-tabpage.html

設定

無断転載になってしまいそうなので、設定は参考サイトをご参照ください。m(_ _)m
Ctrl + Shift + 矢印キー(<) で左にタブが移動します。
Ctrl + Shift + 矢印キー(>) で右にタブが移動します。

ちなみに、単なるタブの遷移はgtgTでできます。
gtが右に遷移。gTが左に遷移です。

前の単語の最後にカーソル移動

$
0
0

ノーマルモードでgEです。

VimでNeoSnippetを活用してRailsでスニペットファイルを細かく切り替える

$
0
0

neosinippet.vimいつもお世話になっておりますm(__)m

背景

なんでこんなことやるの?

スニペット便利だなーって思ってよく活用してます。
ただいろいろ定義してると候補が増えてくるので
もうちょっと賢くフィルタリングしてもらいたいなーって思ってました。

例えばRailsアプリ作ってる時に、modelファイルをいじってるのに
controller用のスニペットが候補に上がってくることがあります。

うまく絞り込んでくれれば候補選択する手間が省けるので
なんとかできないかなーって思ってました。

例えばこんな感じ。

  • modelのファイル → model用のスニペット
  • controllerのファイル → controller用のスニペット
  • viewのファイル → view用のスニペット

・・・以下略

RailsじゃなくてもSymfonyなど他のフレームワーク使っていても
ファイルが役割分担されているのでその役割毎にうまくスニペットを
切り替えたいという欲求が有るかと思います。

課題

普通にファイルタイプ毎にスニペットを変えることはできそうです。

こここことかが参考になります。

でもこれだと拡張子の区別までしかできません。

Railsでcontrollerにしろmodelにしろviewにしろ全部.rbです。
百歩譲ってxxx_spec.rbのようなファイルならいいのですが、
ファイル名だけでは判断できない場合にうまいこと行きません。

そんな細かいこときにせず全候補出してそこから選べよという感じ
かもしれませんが気になって夜も眠れませんでした。

そして私のグーグル力では打開策がちょっとわかりませんでした。

解決策

大した策ではありませんが、方針は以下です。

  • ファイル名だけでなくディレクトリパスまでフィルタリング条件に入れる!!!

Railsだと、以下の様なディレクトリ階層になっています。

- app/
    - assets/
    - controllers/
    - models/
    - views/
    - helpers/
    - mailers/
・・・・以下略

上記のようにディレクトリごとにスニペットを切り替えられたら
幸せだろうなーと思いました。

vimで設定してみちゃう☆☆♪

事前準備

neosnippet.vimを導入しておきます。
必要に応じてneocomplete.vimなどもご一緒に。

NeoBundleを使うとプラグイン管理が楽ちんです。

vimrcで設定記述

.vimrc
" .vimrc

" スニペットファイルの場所指定
let g:neosnippet#snippets_directory='~/.vim/snippets/'


" ファイル名で区別出来る場合は直接呼び出し
" ファイル名で区別できない場合は一旦関数に投げる
augroup filetypedetect
  autocmd!  BufEnter *_spec.rb NeoSnippetSource ~/.vim/snippets/rspec.snip
  autocmd!  BufEnter *rb call s:LoadRailsSnippet()
augroup END

" rails用スニペット呼び出し関数
function! s:LoadRailsSnippet()

  " カレントディレクトリのディレクトリパス(絶対パス)取得
  let s:current_file_path = expand("%:p:h")

  " appフォルダ内でなければ無視
  if ( s:current_file_path !~ "app/" )
    return

  " app/modelsフォルダ内ならば
  elseif ( s:current_file_path =~ "app/models" )
    NeoSnippetSource ~/.vim/snippets/model.rails.snip

  " app/controllersフォルダ内ならば
  elseif ( s:current_file_path =~ "app/controllers" )
   NeoSnippetSource ~/.vim/snippets/controller.rails.snip

  " app/viewsフォルダ内ならば
  elseif ( s:current_file_path =~ "app/views" )
    NeoSnippetSource ~/.vim/snippets/view.rails.snip

  " app/helpersフォルダ内ならば
  elseif ( s:current_file_path =~ "app/helpers" )
    NeoSnippetSource ~/.vim/snippets/helper.rails.snip

  " app/assetsフォルダ内ならば
  elseif ( s:current_file_path =~ "app/assets" )
    NeoSnippetSource ~/.vim/snippets/asset.rails.snip
  endif
endfunction

ちなみにautocmdの部分で*.rbではなく*rbとしているのは.erbも意識しているためです

本当は変数とか使ってやりたかったのですがNeoSnippetSourceが何故か文字列を受け取らなかったのでsnipファイルパスをベタ打ちしています。

誰かもっときれいなのおしえてください><

neosnippetのちょっとしたTips

スニペットを自分で用意するのが面倒(誰か作って!

行中でも候補選択できるようにしたい

行頭ならたいてい反応しますが、行中だと反応しません。

例えば<p>|</p>の「|」の部分にカーソルがあってここで呼び出そうとして反応しません。
特にrailsでviewのerbファイル

その場合にはスニペットファイルでオプションを設定しましょう。

snippet vif
abbr    <%= if ... %> ... <% end %>
options word
    <% if ${1:condition} %>
        ${2}
    <% end %>

上記のようにoptions wordを指定すると行中でも反応するようになります。
デフォルトは行頭だけなので必ず指定しましょう。

候補選択の時、TABキーでぐるぐる候補を切り替えたい

neosnippetとneocomplete入れて公式記載の設定をするとTABキーバインドが
かぶっています。

するとどうなるかというと、候補一覧が出ている状況でTABを押したら
1つ目の候補が選択されてそのまま入力完して候補一覧が閉じられてしまいます。

C-nで候補選択しろよって話ですが、TABだけでぐるぐる回して候補切り替えていきたい
のでTABでは候補を展開しないようにしました。

公式オススメの方法ではありませんがこんなやり方もありますよというご参考で。

" neocomplete.vim公式どおり
inoremap <expr><TAB>  pumvisible() ? "\<C-n>" : "\<TAB>"


" neosnippet.vim公式指定をちょっといじる
imap <expr><CR> neosnippet#expandable() <bar><bar> neosnippet#jumpable() ? "\<Plug>(neosnippet_expand_or_jump)" : "\<CR>"
imap <expr><TAB> neosnippet#jumpable() ?
\ "\<Plug>(neosnippet_expand_or_jump)"
\: pumvisible() ? "\<C-n>" : "\<TAB>"
smap <expr><TAB> neosnippet#jumpable() ?
\ "\<Plug>(neosnippet_expand_or_jump)"
\: "\<TAB>"

要はTABをjumpable()の時だけ反応して、expandableの時に反応しないようにして
代わりにexpandable()の時はEnterキーを反応させるようにしました。

jumpable()はスニペット展開後にカーソル飛び先があるかどうかを判断するもので
タブでカーソル移動は便利なので残しています。

・・・がちゃんと読んでないので違うかもしれませんーー;

参考

より詳しく知りたい場合は以下を参考にしましょう。

  • ヘルプ (:help neosnippet-snippet-syntax)

[一日一Vim](その8)unite.vim

$
0
0

最近転載しかしていないですね。。。

参考資料

http://qiita.com/hide/items/77b9c1b0f29577d60397

http://d.hatena.ne.jp/osyo-manga/20130307/1362621589

使い方

上記URLのまとめが素晴らしいので、そちらを参照していただくのがいいと思います。

私がやりたかったのは、vimからexeを起動できないかなぁということでした。

:Unite launcherとすると、$PATH以下のexeの一覧がみれるので

そこから絞り込みして実行。っていうのが便利そうです。

$PATH以下に無いexeの実行方法も知りたいと思いますので、引き続き調べたいと思います。

Vimの矩形選択 + 挿入

$
0
0
control + v 

カーソルで範囲を選択

shift + i(I) 
   or 
shift + a (A)

文字を入力後、esc

Vim のモーションについて

$
0
0

左右の移動 left-right-motions

この節で説明するコマンドはどれも、カーソルをカレント行の指定の位置に移動させます。これらのコマンドは行の先頭と末尾でストップします。例外は $で、カウントを指定した場合は下の行へ移動します。設定'whichwrap' をオンにすると、これらのコマンドが行をまたいで移動するようになります。
※{count}指定がなければデフォルトでは1が指定される

{conut} h{count}文字分、左に移動します。{count}指定がなければ1文字移動
{conut} l{count}文字分、右に移動します。{count}指定がなければ1文字移動
0その行の最初の文字に移動します
^その行の最初の非空白文字に移動します
$その行の最後に移動します。カウントが指定された場合は、{count - 1}行下にも移動します。ビジュアルモードではカーソルは行の最後の文字の後へ移動します。設定'virtualedit' がオンのときには、$によってカーソルが行末の先から行の最後の文字へバックするかもしれません。
{count} 現在の行の {count} スクリーン桁位置に移動します
{count} f{char}右に向かって {count} 番目に現れる {char} に移動し、カーソルがその {char} 上に置かれます
{count} F{char}左に向かって {count} 番目に現れる {char} に移動し、カーソルがその {char} 上に置かれます
{count} t{char}右に向かって {count} 番目に現れる {char} まで移動します。カーソルは {char} の左側の文字に置かれます
{count} T{char}左に向かって {count} 番目に現れる {char} まで移動します。カーソルは {char} の右側の文字に置かれます
{count} ;{count} 回最後の f, t, F, T を繰り返します
{count} ,{count} 回最後の f, t, F, T を反対方向に繰り返します

上下の移動 up-down-motions

{conut} k{count}行上に移動
{conut} j{count}行下に移動
{count} gk{count} 表示行上に移動。行が折り返されている場合とオペレータコマンドとともに使われた場合は kと違う動作になります(行単位ですから)
{count} gj{count} 表示行下に移動。行が折り返されている場合とオペレータコマンドとともに使われた場合は jと違う動作になります(行単位ですから)
{count} -行上の最初の非空白文字に移動します(行単位)
{count} +行下の最初の非空白文字に移動します(行単位)
{count} _{count} -1 行下の最初の非空白文字に移動します(行単位)
{count} G{count} 行目の最初の非空白文字に移動します(行単位)。カウントの前置がなければ最後の行に移動します。設定'startofline' がセットされていなければ同じ桁位置に移動します。Gはジャンプモーションです
{count} gg{count} 行目の最初の非空白文字に移動します(行単位)。カウントの前置がなければ最初の行に移動します。設定'startofline' がセットされていなければ同じ桁位置に移動します。
{count}%※{count}必須。ファイルの {count} パーセントの位置の最初の非空白文字に移動します

単語単位の移動 word-motions

これらのコマンドは word もしくは WORD 単位で移動します。

word

word はアルファベット、数字、アンダースコア、もしくは他の非空白文字の連続で構成され、ホワイトスペース(スペース、タブ、)で区切られます。これらは設定'iskeyword' オプションで変更することができます。空行も word とみなされます。

WORD

WORD は非空白文字の連続で構成され、ホワイトスペースで区切られます。空行もまた1つの word と WORD と見なされます。折り畳まれた一連の行は1文字からなる1単語と数えられます。wW, eEは折り畳まれた行の範囲の後の最初の word や WORD の初め/終わりに移動します。bBは折り畳みの前の最初の word や WORD の初めに移動します。

特殊なケース: カーソルが非空白文字の上にあれば cwcWcecEのように扱われます。これは cwが単語を変更するコマンドだと解釈されるからで、単語には続くホワイトスペースは含まれていないからです。

もう一つの特殊なケース: オペレータコマンドと移動コマンド wを組み合わせたときカーソルがその上を移動した最後の単語が行末にあった場合、その単語の終わりがオペレータの対象になるテキストの終わりになります。次の行の最初の単語ではありません。

{count} w{count} word 前方に。
{count} W{count} WORD 前方に。
{count} e{count} word 前方の単語の終わりに。wbと異なり、空行では止まりません。
{count} E{count} WORD 前方の単語の終わりに。wbと異なり、空行では止まりません。
{count} b{count} word 後方に。
{count} B{count} WORD 後方に。
{count} ge{count} word 後方の単語の最後に。
{count} gE{count} WORD 後方の単語の最後に。

オブジェクト単位で移動 object-motions

{count} ({count} 文後方に
{count} ){count} 文前方に
{count} {{count} 段落後方に
{count} }{count} 段落前方に
{count} ]]{count} セクション前方に、もしくは1桁目が {で始まる次の場所に。オペレータコマンドの後で使われた場合は1桁目の }の下でも止まります。
{count} ][{count} セクション前方に、もしくは1桁目が '}' で始まる次の場所に。
{count} [[{count} セクション後方に、もしくは1桁目が '{' で始まる前の場所に。
{count} []{count} セクション後方に、もしくは1桁目が '}' で始まる前の場所に。

これらのコマンドは3種類のテキストのまとまりの単位で移動します。

sentence

文は ., !, ?で終わり、その後に行末かスペースもしくはタブが続くものとし
て定義されます。任意の数の閉じ ), ], ", '文字が ., !, ?の後
に、そして改行もしくはスペースかタブの前に現れてもよいです。段落とセクションの
境界は文の境界でもあります。
もし 'J' フラグが 'cpoptions' にある場合は句読点の後に少なくとも二つのスペース
がある必要があります; はホワイトスペースとして認識されません。
文の定義を変更することはできません。

参考文献

http://vim-jp.org/vimdoc-ja/motion.html


VimGolfに挑戦。 ~ A HAPPY NEW YEAR 2014 !

$
0
0

VimGolfとは、Vimのキーストロークの少なさを競えるサイトです。
http://vimgolf.com/challenges/52c3cb0d9b8634000200000e

たとえば、初期状態でこうなっている文字列を

A HAPPY END WITH YEAR 2013 !

Vimで以下のように編集する場合のキーストロークの少なさを競い合います。

A HAPPY NEW YEAR 2014 !

まだまだ、わたしのVim知識では、スコア12が限界。。。

Score12: fE2cwNEW<Esc><C-A>ZZ

最少のキーストロークが11みたいだけど、どーやってやんのさ?
上級Vimmerの皆様、教えてちょんまげ。

追記 2014-04-22 22:00
コメントにて、ご教授いただきました。

Score11: fE8sNEW<Esc><C-A>ZZ

[一日一Vim](その9)折りたたみ

$
0
0

参考サイト

http://vim-users.jp/2010/10/hack178/

使い方

またも、上記サイトに全て記載されています。

:set foldmethod=markerとかすると、zcとかzoで折りたたみの開閉ができるようになります。

私としては:set foldmethod=syntaxが一番しっくりくる折りたたみをしてくれるのでいいかなぁと思っています。

折り畳み位置でlで一段開く。なんてのができたらいいなぁとちょっと思ったりしています。キーマップを設定したらできるのかもしれませんが、よくわかっていません...

Mac+標準ターミナルアプリ+Vimで「※」などの記号がずれる問題への対処法

$
0
0

僕は普段Mac(Mountain Lion)+標準ターミナルアプリ+Vimでテキストを編集することが多いのですが、テキスト中の「※」などの記号を含む行で文字がずれる、カーソルがずれる、あるはずの文字が消える、等の現象が起こりました。

kobito.1398215233.777101.png

これを解決する方法を調べたところ、以下の方法で解決することが分かりました。

標準ターミナルアプリの設定

「環境設定...」から設定ダイアログを開き、「設定」タブから「詳細」ボタンを押して詳細画面を表示します。

詳細画面の下の方にある「言語環境」のところの

Unicode 東アジア A (曖昧) の文字幅を W (広) にする

にチェックを入れて下さい。

Vimの設定

.vimrcに以下の記述を追加して下さい:

.vimrc
set ambiwidth=double

以上で問題は解消します。

kobito.1398215179.182910.png

参考

この問題を解決するにあたり、以下の情報を参考にさせていただきました。ありがとうございました。

virtualedit=block時にyankしたときのおまけのスペース

$
0
0

text hoge.txt
aaaaaaa$
bbbbbbbbb$
ccccccxxxxxx$
ddddddd$

を矩形選択で全て選択して5行目にペーストした時の
text hoge.txt
aaaaaaa$
bbbbbbbbb$
ccccccxxxxxx$
ddddddd$
aaaaaaa   $
bbbbbbbbb  $
ccccccxxxxxx$
ddddddd   $

となる挙動を
text hoge.txt
aaaaaaa$
bbbbbbbbb$
ccccccxxxxxx$
ddddddd$
aaaaaaa$
bbbbbbbbb$
ccccccxxxxxx$
ddddddd$

こうしたい・・・

VimGolfに挑戦 - No.2 ~ Words in parens

$
0
0

VimGolfとは、Vimのキーストロークの少なさを競えるサイトです。
http://vimgolf.com/challenges/5192f96ad8df110002000002

たとえば、初期状態でこうなっている文字列を

one two
three   

Vimで以下のように編集する場合のキーストロークの少なさを競い合います。

(one) (two)
(three)  

まだまだ、わたしのVim知識では、スコア21が限界。。。(おい..またか・泣)

:%s/\(\w*\)/(\1)/g<CR>ZZ

最少のキーストロークが14みたいだけど、どーやってやんのさ?
上級Vimmerの皆様、お知恵をお貸しください!!

Viewing all 5765 articles
Browse latest View live


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