タグではなく、タブの質問です(笑)。
投稿するときにソースを貼り付けようとすると、タブが表示されないため、インデントがずれてしまいます。
4文字タブとか8文字タブが設定できるのでしょうか?
それとも別にエディタのほうで、タブをスペースに置き換えなければいけないのでしょうか?
お教えください。よろしくお願いします。
Massaさま
貼り付けはどのようにされてますでしょうか?投稿画面の上に並ぶメニュの中のをクリックしていただいて貼り付け画面をだし、そこにペーストするとインデントも反映されると思うのですがいかがでしょうか?
貼り付けは、IARのエディタかCCEのエディタからコピーアンドペーストしています。
すると、タブがスペースに置き換えられてしまい、2タブの位置が8文字目でなく3文字目になってしまいます。
そのため、スペースでとったインデントが後ろの方に行ってしまいタブでとったインデントは前にきてしまいます。
また、フォントがプロポーショナルのため後ろに書いたコメントの位置が合いません。固定幅フォントの設定はできないのでしょうか。
例を次にペーストします。最初はタブで、2番目はスペースでインデントを作ってあるので、4文字タブ設定したエディタ上ではまったく同じに見えますが、下記のようにごちゃごちゃしてしまいます。まだスペースで置き換えたほうが見やすいですが。
また、// で表示されるコメントもエディタではすべて頭をあわせたものですが、予測できない位置に表示されています。
行の後のコメントは、アセンブラでは必須になりますので、かなり見にくくなってしまいます。最後に、IARのリストの例を貼付します。ニューモニックを追うのも困難になっていることがおわかりいただけると思います。
なんとかならないでしょうか? よろしくお願いします。
・タブによるインデント
void initADC(void){ int i; ADC12CTL0 = ADC12ON + REFON + REF2_5V + SHT0_6; // Setup ADC12, ref., sampling time ADC12CTL1 = SHP; // サンプリングタイマー ADC12MCTL0 = INCH_10 + SREF_1; // チャネル A10(温度), Vref+ ADC12IE = 0x01; // ADC12IFG.0の割り込み許可 for (i = 0; i < 0x3600; i++) ; // 少し待ってやる ADC12CTL0 |= ENC; // 変換を許可
}
・スペースによるインデント
・IARでのリスト
27 28 while(1) { 29 for(x = 50000; x > 0; x--, j++); \ ??main_0: \ 000036 3F53 ADD.W #0xffff, R15 \ 000038 1E53 ADD.W #0x1, R14 \ ??main_1: \ 00003A 0F93 CMP.W #0x0, R15 \ 00003C FC23 JNE ??main_0 30 P1OUT ^= 0x04; \ 00003E E2E22100 XOR.B #0x4, &0x21 31 func(j); \ 000042 0C4E MOV.W R14, R12 \ 000044 B012.... CALL #func \ ??main_2: \ 000048 3F4050C3 MOV.W #0xc350, R15 \ 00004C F63F JMP ??main_1 \ 00004E REQUIRE WDTCTL \ 00004E REQUIRE P1OUT \ 00004E REQUIRE P1DIR 32 } 33 34 }
massa様
以下のURLをご参考に、HTMLを直接編集されてはいかがでしょうか。
http://jmblog.jp/archives/80
当コミュニティでは、記事を投稿する際に表示されるエディタ欄の枠の上にある"HTML"ボタンをクリックすると
HTMLを直接入力できます。
下記はCCEのエディタからCTRL+Cでコピーしたソースを<pre>タグと<code>タグで囲まれた領域に
CTRL+Vしてみた例です。
void main(void){ volatile unsigned int i; WDTCTL = WDTPW + WDTHOLD; // Stop WDT // initialize uart P5SEL = 0xC0; // P5.6,7 = USCI_A1 TXD/RXD UCA1CTL1 |= UCSWRST; // **Put state machine in reset** UCA1CTL1 |= UCSSEL_2; // SMCLK UCA1BR0 = 9; // 1MHz 115200 (see User's Guide) UCA1BR1 = 0; // 1MHz 115200 UCA1MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0 UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine** UCA1IE |= UCRXIE; // Enable USCI_A0 RX interrupt
宮島様
レス、ありがとうございます。
私はメーラにHTMLメール拒否を設定するくらいのHTML嫌いなのですが、これしかなければやるっきゃないですね。
今度タグを入れて試してみます。
で、タブの数は4とか8とか設定できるのですか。
これからもよろしく。
Massa様
改めて、単純なソースコードで実験してみます。
#元ソースを添付いたしました。
#include int main(void){ // comment1 printf("Hello World!\n"); // comment2 printf("Hello World!\n"); // comment3 return 0;} 行頭のインデントはタブ1つ、6行目のコメントの前にはタブ2つ、7行目のコメントの前にはスペース7つを挿入してあります。タブ4の場合に6行目と7行目のコメントの開始位置が揃って表示されますが、書き込みを投稿して表示した際には、タブ8として表示されるようです。 ソースコードのインデントの崩れが気になる場合は、ソースコードを表示したウィンドウをスクリーンショットして添付するなどしてみてはいかがでしょうか。
#include int main(void){ // comment1 printf("Hello World!\n"); // comment2 printf("Hello World!\n"); // comment3 return 0;}
行頭のインデントはタブ1つ、6行目のコメントの前にはタブ2つ、7行目のコメントの前にはスペース7つを挿入してあります。タブ4の場合に6行目と7行目のコメントの開始位置が揃って表示されますが、書き込みを投稿して表示した際には、タブ8として表示されるようです。 ソースコードのインデントの崩れが気になる場合は、ソースコードを表示したウィンドウをスクリーンショットして添付するなどしてみてはいかがでしょうか。
行頭のインデントはタブ1つ、6行目のコメントの前にはタブ2つ、7行目のコメントの前にはスペース7つを挿入してあります。
タブ4の場合に6行目と7行目のコメントの開始位置が揃って表示されますが、
書き込みを投稿して表示した際には、タブ8として表示されるようです。
ソースコードのインデントの崩れが気になる場合は、
ソースコードを表示したウィンドウをスクリーンショットして添付するなどしてみてはいかがでしょうか。
再度失礼いたします。やはりエディタとは環境が全く違うので互換がうまくいかないようです。
US にも問い合わせてみたのですが、、やはり word を使うとうまくいくのではということです。1) 一度ソースを word にはりつけていただいてから投稿画面で貼り付ける。2) 最初にご提案したように この投稿を書き込む画面の上に並んでいるメニューのアイコンをクリックし、word 貼り付け用画面をだしてそこに貼り付けていただく。再度お試しいただけますでしょうか。またこれでもうまくいかないようでしたら最後の手段としては投稿に添付していただくのが一番よいかと思います。ご面倒をおかけしてすみませんが、どうぞよろしくお願いいたします。
Administrator様、 MIYAJIMA様
貼付方法の手法の解説、ありがとうございます。
画面の美しさでは、MIYAJIMA様のHTML貼り付けがきれいそうですが、これからいろいろ試してみたいと思います。
丁寧なアドバイス、本当にありがとうございました。
本サイトの全てのコンテンツ及び素材は、「現状有姿のまま」提供されております。 日本テキサス・インスツルメンツ株式会社及びその親会社であるTexas Instruments Incorporated (以下、TIと総称します)、並びにTIに当該コンテンツや素材を提供した者は、当該コンテンツ若しくは素材が何らかの目的に適合しているかどうかについて、いかなる表明もいたしませんし、また、当該コンテンツ若しくは素材について、当該コンテンツ若しくは素材に商品性があることの保証、特定の目的に適合していることの保証、TI若しくは当該提供者に何らかの権原が有ることの保証及び当該コンテンツ若しくは素材が第三者の知的財産権を侵害していないことの保証その他、黙示の保証であろうと明示の保証であろうと、いかなる保証も一切いたしません。 TI は、明示のライセンスであろうと、黙示のライセンスであろうと、禁反言によるライセンスであろうと、ライセンスは一切いたしません。 本サイト上にある情報を使用する場合は、別途、第三者もしくはTI から、ライセンスを取得しなければならない場合があります。 本サイト上にあるコンテンツには、特別な使用上の注意事項もしくは制限事項が含まれているか、又はそれらの注意事項もしくは制限事項に従う限りにおいて使用できる場合があります。 本サイト上の全ての投稿及びコンテンツの使用は、本サイトの「使用条件」に従ってなされるものとし、当該コンテンツを使用する第三者は本サイトの「使用条件」の制限、注意事項に拘束され、且つそれらに従わなければならないものとします。 TI 及びコンテンツ、素材等を提供した者は、いつでも、コンテンツ、素材、製品、プログラム及びサービスを訂正、削除、修正、増加、改良その他の変更をし、かつ、いかなるコンテンツ、製品、プログラム若しくはサービスも、通告無しに移動、中止する権利を留保します。