2017年04月 / 03月≪ 123456789101112131415161718192021222324252627282930≫05月

2015.07.25 (Sat)

[VisualStudio2010] Emacsキーバインド使用時にコピペができない問題とその対処法

タイトルの通り、VisualStudio2010でEmacsのキーバインドを使用していると、普通には他のソフトからのコピペができないという現象があるので、どうすればコピペできるのかという話です。



・VisualStudio2010でのEmacsキーバインドの使用

古い話ですが、VisualStudio2010でEmacsのキーバインドを使用する方法があります。

公式サイトの拡張を入れるだけというシンプルな話です。
  https://visualstudiogallery.msdn.microsoft.com/09dc58c4-6f47-413a-9176-742be7463f92
 ※Expressでは利用できないらしいです。Professionalでは利用できました。

これで基本的なEmacsのキーバインドは利用できます。
部分的に微妙なところがあるのは仕方ないですが、致命的なものがあります。
それが今回タイトルにした、コピペができないというものです。



・ClipBoardからコピペできない現象について

コピペと一口に言っても、VisualStudio内部でコピーして貼り付けることならばできます。
ここでできないと言っているのは、他のソフトでWindowsのクリップボードにコピーしたバッファデータを、VisualStudioへコピーすることができません
例えば、Webブラウザのサンプルソースコードとかエクスプローラで指定したのファイルパス、PDFなどの文字列をかとコピーしてWindowsのクリップボードに保存したバッファデータを、VisualStudioへペーストすることができません。
これは上記のEmacsキーバインドを使用しているとき特有の現象のようです。
なので、他のソフトから今VisualStudioで編集しているファイルへペーストするには、手打ちするか別のエディタでファイルを開いてコピーするという手間をかける必要があります。

何故Clipboardの内容がコピーされないのかはわかりませんが、Emacsのキーバインドのために専用のバッファを設けているのでしょう。



・他のソフトからコピペする方法
ClipBoardにコピペする方法については、簡単な話でした。
困った時のStackOverflowをあたると、下記のように書かれていました。

"Ctrl+Shift+Insert"が「Edit.CycleClipboardRing」に割り当たってるから、それ押せばクリップボードのデータ貼り付けできるよ。



ということで、シンプルな話でした。
秀丸だかxyzzyだかのエディタでは、"Shift+Insert"でClipBoardの貼り付け、"Ctrl+y"で単にTextEditor内でコピーしたバッファデータの貼り付けだったように思います。
なので、Shift+Insertは試していたのですが、そこにCtrlを追加することは試していませんでした。


ちなみに、今SurfacePro3を使用しているのですが、Insertキーがありません。スクリーンキーボードを使えばInsertを入力できますが、いちいち起動するのは面倒です。
なので、上記のキーバインド「Edit.CycleClipboardRing」をお好みのものに差し替えれば良いという話になります。
「Ctrl+Shift+Y」あたりが分かりやすいんじゃないのかなと思ってます。


テーマ : プログラミング ジャンル : コンピュータ

14:01  |  プログラミング系  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2014.12.07 (Sun)

機械学習の本

機械学習関係の本をメモがてら記載します。
主にPythonで実装することを想定。


・統計学のための数学入門30講 (科学のことばとしての数学)


・パターン認識と機械学習 上 (ベイズ理論による統計的予測)


・パターン認識と機械学習 下 (ベイズ理論による統計的予測)


・入門パターン認識と機械学習


・Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理


・集合知プログラミング


・実践 機械学習システム





01:45  |  プログラミング系  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2011.01.01 (Sat)

VisualStudio2010 で Emacs のキーバインドを使う

VisualStudio2010 には、デフォルトで Emacs のキーバインド設定が入っていないようだ。
10月に、公式サイトで Emacs のキーバインド設定が公開されたようなので、以下からダウンロードすれば使えるようになる。

http://visualstudiogallery.msdn.microsoft.com/en-us/09dc58c4-6f47-413a-9176-742be7463f92

ダウンロードした .vsix という拡張子をダブルクリックするだけでインストーラが起動する。
これで、いつもどおりに

    [ツール] ⇒ [オプション] ⇒ [環境] ⇒ [キーボード]

を選択し、「キーボードマップスキームを適用」の部分で「Emacs」を選択してやれば OK.
デフォルトで入れといてくれよ・・・


テーマ : ソフトウェア開発 ジャンル : コンピュータ

14:36  |  プログラミング系  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2010.10.01 (Fri)

[GAE] Google App Engine ではテキストファイルを読み込めない!

タイトル通りです。

テキストファイルにデータを書いておいて、それをソースと一緒にアップロード。
それを後から読み込むというようなことはできない模様。

これでしばらく悩みました。
はじめは書き込みはできないけどテキストファイルを後から読み込むことはできるだろうと思い込んでいたのが敗因。


テーマ : プログラミング ジャンル : コンピュータ

21:09  |  プログラミング系  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2010.07.20 (Tue)

[Eclipse] エディタ切り替えのキーバインド変更 [Emacsライク]

Javaを書くときはEclipseを使用している。
設定を変更し、Emacsライクに使用しているのだが、ウィンドウ切り替えの時にいちいちマウスに手をやるのは面倒である。
かといって、ショートカットに割り当てられていたのはCtrl+F6など、面倒なキーで使う気になれない。
そのため、キーバインドを変更する。

メニューバーの

    [ウィンドウ]⇒[設定]⇒[一般]⇒[キー]

とすると、右側にスキームやキーバインドの一覧が出る。
その中から

  「次のエディタ」
  「前のエディタ」

を探し、バインディングのところを編集。
私は

  「次のエディタ」:Ctrl+O、Ctrl+N
  「前のエディタ」:Ctrl+O、Ctrl+P

という様にした。
これは、LINUX上での screen コマンドで使っているキーバインドと同じものである。
※基本は、Ctrl+O ではなく Ctrl+A である。



テーマ : プログラミング ジャンル : コンピュータ

17:18  |  プログラミング系  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2010.05.11 (Tue)

関数型言語

関数型言語って何がいいんだろう。
いや、せいぜいeLispを数行走らせるくらいしか触ったことはないわけですが・・・。
関数型はそれぞれが独立してるから、並列して走らせるときに何も考えなくてすむから便利みたいな話は聞いたけど・・・。
一度は触ってみたい、関数型言語。
なんかやってみるとC言語とかの視野が広がるとかいう話も聞くしね。

Scala,Haskel,Lisp,Scheme

何をやってみようかな。
まぁ今はそれよりJavaをある程度使えるようになりたいわけですがね。


テーマ : ゲーム ジャンル : ゲーム

13:04  |  プログラミング系  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2010.04.22 (Thu)

[TwitterBot] Bot作成 [GAE×Python]

だいぶ前からPythonとGoogleAppEngine使ってBotでも作ろうとしていろいろやってましたが、ようやく機能を持たせられました。
今回持たせた機能は

 ・followしてくれた人を自動でfollowする
 ・followを解除した人はこちらも解除する
 ・このblogが更新されたら自動でツイートする
  ツイートの内容は
    1.ブログ更新時刻
    2.更新した記事へのURL(短縮URL)
    3.ブログ記事のタイトル

こんな感じです。
Twitterのアカウントはコチラ
是非フォローしてやってくださいな。


追記:
動作確認。
ちゃんとツイートされました。
とりあえず、今は5分おきにフォロー・ブログのチェックするようになってます。

追記:
5分おきだと、ブログのRSS取得時にたまにダウンロードエラーとなるので間隔を広げました。
フォローの確認5分、最新記事の確認30分に変更。



テーマ : Twitter ジャンル : コンピュータ

07:28  |  プログラミング系  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2010.04.02 (Fri)

FC2BlogにもAPIあったのか。

考えてみれば無いわけないよな。
よくよくみれば、なんかアプリケーションとかいうところに「管理」とか「追加」とかあるじゃないか。
で、「開発」のところでAPIの説明が。
でもPHP5しかライブラリ存在しないようだ。
Pythonでいじりたいと思っているから、駄目だ。
自分で直接拾ってくることにしよう、うん。

テーマ : プログラミング ジャンル : コンピュータ

09:06  |  プログラミング系  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2010.03.28 (Sun)

postgreSQLメモ

ただリンク張るだけ。

postgresqlの基本コマンドをまとめてみました。
複数の PRIMARY KEY 作成
テーブル作成、制約、項目タイプ、キー作成、順序作成
データ型1
データ型2
テーブル一覧の取得

テーマ : データベース ジャンル : コンピュータ

01:10  |  プログラミング系  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2010.02.14 (Sun)

[ python ] app.yaml や cron.yaml の設定 [ GoogleAppEngine ]

GAE上で必ず必要になるのが「app.yaml」というファイル。
このファイルに実行したいプログラムのパスなどを記載し、ユーザからURLのリクエストが来たら対応するプログラムを起動するように設定する。
以下、具体例。



application: holy-k-night-test
version: 3
runtime: python
api_version: 1

handlers:

- url: /HolyKnightBot/.*
script: HolyKnightBot/greed_holy_knight.py
login: required

- url: (/.*)|(/HelloWorldGAE/.*)
script: HelloWorldGAE/helloworldgae.py




「application:」のところには、アプリケーション名を入れる。
アプリケーション名とは、一つのアカウントが10個まで持てるアプリケーションの名前。
説明になってないなw
「version:」には、その登録するアプリケーションのバージョンを書き入れる。
整数値で、1~100までの設定が可能。
「runtime:」には実行環境の情報を入れる。
「api_version:」には、実行環境のバージョンについて記入。
pythonは version 1 しかないようだ。

そして、「handlers:」以降にアプリケーション情報を書き込んでいく。
   ・url:   ユーザがアクセスするURLを書き込む。ここには正規表現を使うことができ、
         この例では「HolyKnightBot」および「HelloWorldGAE」へのURLに適応する。
   ・script: URLに対応する実行したい処理のプログラムファイルを記述。
   ・login:  これは任意で設定することができ、「required」と設定するとGoogleAccountにログインした人しかアクセスできない。
         GoogleAccountを使ったプログラムも組めるため、そういうときに有効に使うことができるのではないかと。
ちなみに、login設定をしてローカルでテスト実行を行う場合、ブラウザでローカルアクセスするとログイン画面が表示される。
ログインにはデフォルトで用意されたアカウントを使用することになり、その際にAdministratorか一般ユーザかを選択できる。






GAE(GoogleAppEngine)上で定期的にプログラムを走らせたい場合にはCronという機能を使う。
CronはLINUXでスクリプトを走らせるときによく使われているデーモンらしいのだが、全然知らなかった。
LINUXは多少触ったことはあったけれども、実家でネットにつなげるようになったのはほんの数年前だったから、LINUXで好き勝手にいじりまくる時間はなかった。

さて、LINUXで使われるCronは全く知らないので、GAE上のCronについて。
GAE上のCronはYAMLという形式のファイルで管理する。
「cron.yaml」というファイルを定期実行で走らせたいプログラムと一緒にアップしてやるだけというお手軽さ。

以下は、この休みで作ってたテスト用TwitterBotのプログラムに使ったcron.yaml。



cron:
- description: twitter bot "holy-(K)night"
 url: /HolyKnightBot/???
 schedule: every 60 mins




「cron:」
という行に続き、「description:」や「url:」などの設定を行う。
descriptionでは、おそらく名前を付けているのかな?
urlでは、実行する間隔を設定。
この例では一時間ごとという設定にしてあるが、毎週月曜朝9時や4月1日0時に実行なども設定可能。
  Python 用の cron を使用したスケジュール タスク


ブラウザからアプリケーション情報を確認できるが、その中の項目に「CronJobs」という項目がある。
Cronが設定されていると、その内容が見ることができるが、cron.yamlをアップして設定した直後では「 Hasn't run yet 」という状態になっている。
だが、これはうまく設定できていないというわけではなく、自動更新が一度行われると「Success」となるため、ちゃんと設定されていてもこういう表示がされる。

テーマ : プログラミング ジャンル : コンピュータ

04:22  |  プログラミング系  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
 | BLOGTOP |  NEXT