2013/12/25

Visual Studio の F# 用のキーバインド 後編

** Window
C-A-f REPLを開く
C-\, C-E エラーリストを表示
C-A-o Outputウィンドウを表示
F4 プロパティウィンドウを表示
C-A-l ソリューションエクスプローラを表示
C-A-a コマンドウィンドウを表示
C-\, C-t タスクリストを表示
C-A-j オブジェクトブラウザを表示
S-Esc 現在のツールウィンドウを閉じる
S-A-d データソースウィンドウを表示
C-F4 現在のタブを閉じる
C-Tab IDE Navigatorを表示
C-S-. エディタの文字のズームイン
C-S-, エディタの文字のズームアウト

** Debugging
F5 デバッグ実行
C-F5 デバッグなし実行
F11 step into
S-A-F11 step into specific
S-F11 step out
F10 step over
S-F5 デバッグ実行を停止
C-A-c コールスタックを表示
C-A-v, l ローカルウィンドウを表示
S-F9 QuickWatchダイアログボックスを表示
C-A-w, 1 Watchウィンドウを表示
C-F9 ブレークポイントをトグル
C datatipを透明化

** Project + Build
A-↑ ソリューションエクスプローラ内の選択された要素を上に
A-↓ 下に
C-S-b ソリューションをビルド
C-break ビルドをキャンセル

Visual Studio の F# 用のキーバインド 前編

** Edit
C-k C-c コメントアウト
C-k C-u コメントアウトを除去
C-S-v クリップボードリングから貼り付け
C-h 置換
C-S-h 複数ファイルを置換
C-→ 次の単語の先頭へ
C-← 今の単語の先頭へ
C-S-→ 選択範囲を次の単語の先頭まで
C-S-→ 選択範囲を今の単語の先頭まで
S-A-矢印 矩形選択
Tab タブを挿入
S-Tab タブを削除
F1 ヘルプ

** F# interactive
A-Enter 選択範囲を送る
A-` 行を送る
C-. 実行をキャンセル

** File
C-S-n 新しいプロジェクト
C-S-o プロジェクトを開く
C-n 新しいファイル
C-o ファイルを開く
C-A-↓ 開いているドキュメントの選択ポップアップ

** IntelliSense
C-Space, A-→ 補完リストの選択中の要素で補完
C-j 入力補完を出す
C-k C-i クイックインフォ
C-S-Space パラメータインフォ
C 補完リストを透明化

** Navigation
F12 定義されている場所に移動
C-f 検索
C-h 置換
C-S-f 複数ファイルを検索
C-S-h 複数ファイルを置換
C-, NavigateToウィンドウを出す
C-] 対応するカッコに移動
C-S-] 選択範囲を対応範囲まで広げる
F8 次へ
C-i インクリメンタルサーチ
C-S-i インクリメンタルサーチの逆
F3 次の単語
S-F3 前の単語
C-F3 選択範囲の文字列を検索して、次の一致へ
C-S-F3 選択範囲の文字列を検索して、前の一致へ
C- - 前に閲覧されていた行へ
C-S- - 次に閲覧されていた行へ
F7 コードビュー内で選択されているアイテムを表示
S-F7 デザインビュー、またはソースビューを現在のドキュメントに切り替え
C-g Go to lineを表示
C-/ 検索/コマンドボックスをツールバーに表示

2013/10/20

ホームページのCSS

トップページのサムネイル
<base target="_blank">
<style>
* { transition: 0.5s; }
a.app:hover * { transition: 0.1s; }
a.app { position: relative; }
a.app:hover { opacity: 0.75; }
img.app {
border-width:1px; border-color:rgba(127, 96, 255, 0.5); border-style:solid; }
a.app:hover > img.app {
border-color: rgba(255, 128, 32, 1); }
span.app {
padding:5px; width:241px;
font-size:14px; font-weight:bold; color:#ffd;
background-color: rgba(48, 32, 255, 0.75); }
a.app:hover > span.app {
color:#fff;
background-color: rgba(255, 104, 16, 0.92); }
</style>
<table class="app">
<tr class="app"><td class="app" style="vertical-align: bottom; padding: 3px;">
<a class="app" href="https://sites.google.com/site/fpaintnagato/paint/icpaint">
<img class="app" width=250px src="https://sites.google.com/site/fpaintnagato/_/rsrc/1380516389567/paint/icpaint/icpaint3.PNG">
<span class="app" style="position:absolute; bottom:1px; left:1px;">キーボードで簡単に操作できる「IcPaint」</span></a>
</td>

ダウンロードボタン
<style>
* { transition: 1s; }
a:hover * { transition: 0.3s; }
div.pa {
padding: 8px;
display: inline-block; }
div.big {
position:absolute; top:-2px; left:-2px; width:100%; height:100%; z-index:-1;
border-width:1px; border-style:solid; border-radius:3px; }
div.fg {
border-color: #4cf;
background: linear-gradient(to bottom, #fef 1%, #eff 50%, #adf 60%, #9ff 100%); }
a:hover div.fg { opacity:0; }
div.bg {
border-color: #4fc;
background: linear-gradient(to bottom, #aff 0%, #efc 50%, #cf8 60%, #ff7 100%); }
font {
position:relative; padding:6px 14px;
font-size:24px; font-weight:bold;
color: #00f; }
a:hover font { color:#0f0; }
</style>
<a href="http://bit.ly/18xA9Xi">
<div class="pa">
<span><div class="bg big"></div><div class="fg big"></div>IcPaint_v0.2.zip をダウンロード</span>
</div>
</a>

2013/10/05

vimのチートシート

! warnings を無視
(action)(times)(object) actionをtimes回objectにする

** Insert
i a カーソルの前/後に挿入
I A 行頭/行末に挿入
O o 今/次の行に挿入

** Visual-mode
v V C-v char/line/block visual mode
u U lower/uper case
~ inver case
> < increase/decrease indent
iw iW inner word/Word
aw aW word with space
is as inner/a sentence
ip ap inner/a paragraph
i( i) a( a) inner/a (...)
i< i> a< a> inner/a <...>
i" a" inner/a "..."
i` a` inner/a `...`


** Move
( ) sentence back/forward
{ } paragraph back/forward
%
| 0 $ begin/end line
gg G begin/end file
nG nth line
H M L top/middle/bottom screen
zt zz zb where cursor is top/middle/bottom
C-e C-y scroll down/up line
C-d C-u scroll down/up half page
C-f C-d scroll down/up page
0 ^ g_ $ begin/first char/last char/end of line
gE ge w W previous/next word
B b e E begging/end of word
[( ]) goto ( )
[{ ]} goto { }
(this is { a test (once more ) middle} end)
fc Fc forward/backward of c
; repeat char
, reverse char
# prev identifier
* next identifier


** Edit
x X delete forward char/backword char
D delete end of line
dd delete line
yy Y yank line
y$ yank end of line
yw yank word
C change enf of line
cc change line
cw change word
R replace mode
r replace char
s substitute
S substitute line
p P paste before/after
. repeat
u U undo last change/ all changes of line


** Replace
:s/pattern/string/gc
g all
c comfirm
& repeat :s


** Marker
mc marker c
`c goto beggining in c
'c goto first non-blank char in c

** Search
/ ? search forward / backward
n N search forward / backward

** Macro
qc record macro
@c do macro


** Command
:w 保存
:zz 保存して終了
:r 読み込み
:n 次のファイルへ
:p 前のファイルへ
:e 編集

C-] goto definition (VsVim)

2013/07/18

Disable Google Analytics's In-page analytics on your web site

https://sites.google.com/site/fpaintnagato/ というページにGoogle Analyticsを入れて、
ページを表示しながらクリック率などが見られる In-Page Analyticsというのをやってみたのですが、
これを一度オンにしたら、オフにする方法がなかなか見つからなかったので、解決策を書いておきます。

I started to use Google Analytics In-Page Analytics which shows click rates on each links on my website.
But when I turned on it once, it opens Google Analytics bar above my website every time when I visit each page.
It's extremely annoying and there seems no way officially announced to turn off it.
Then I write how to solve this problem here.(for chrome only)
  1. type chrome://settings/cookies on chrome adress bar.
  2. delete the cookie of your website which is enabled In-Page Analytics



2013/07/05

F#のプロジェクトでC#のプロジェクトで出来る事をやる方法

1. プログラムにアイコンを付ける方法
Resource Hackerを使って、アイコンにしたい.icoファイルをICONGROUPに追加する
プロジェクトのresource filesで.resで追加すると毎回Resource Hackerを使わなくていいけど、
それだとなぜかilmergeをした時に消えてしまう

 2. アセンブリ情報を付ける方法
これをどこかに書く
open System.Reflection
[<assembly: AssemblyProduct "Test" >]
[<assembly: AssemblyTitle "テンプレートとなるプログラムです。" >]
[<assembly: AssemblyCompany "ながと" >]
[<assembly: AssemblyCopyright "Copyright © ながと 2013" >]
[<assembly: AssemblyVersion("1.1.0.0")>]
do ()
3. Resources・Settingsを使う方法
C#のプロジェクトで作って、そのプロジェクトを参照する
スコープをUserにしたSettingsの設定はアプリケーションのexeの位置が変わるごとに新しく作られてしまう

4. 複数の.dllと.exeをilmergeを使って一つにまとめるスクリプト
open System
open System.IO
open System.Diagnostics
let programName = "Test"
let workingDir = sprintf @"C:\Projects\%s\%s\bin\Debug\" programName programName
let projectDlls =
let primaryDll = workingDir + programName + ".exe"
seq {
yield primaryDll
for ext in ["exe";"dll"] do
for dll in Directory.GetFiles(workingDir,"*."+ext) do
if dll <> primaryDll then yield dll }
|> String.concat " "
let ilmerge = @"C:\Program Files\Microsoft\ILMerge\ILMerge.exe"
let options = sprintf @"/ndebug /out:..\..\..\%s.exe" programName
let targetPlatform = @"/targetplatform:v4,""C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0"""
let args = sprintf "%s %s %s" projectDlls options targetPlatform
let pi =
ProcessStartInfo(
ilmerge,
args,
UseShellExecute = false,
RedirectStandardOutput = true,
WorkingDirectory = workingDir)
let p = new Process(StartInfo=pi)
p.Start() |> ignore
p.StandardOutput.ReadToEnd()
|> printfn "%s"