Conemu: Bagaimana cara membuat beberapa jendela konsol dalam satu tab dari file tugas?


29

Bagaimana cara membuat beberapa jendela konsol dalam satu tab dari file tugas? Saya ingin membuat kotak 2 × 2 konsol dalam satu tab. Saya bisa melakukannya dengan tangan ketika membuat konsol baru dan pilih opsi "Ke kanan" atau "Ke bawah". Tapi saya ingin itu dibuat secara otomatis saat start up. Opsi "simpan otomatis / pulihkan tugas yang dibuka" tidak diaktifkan karena beberapa alasan. Jadi satu-satunya cara adalah membuatnya dalam tugas. Jadi, bagaimana saya bisa membuat 2 × 2 grid dalam tugas?

Jawaban:


44

Ini adalah isi tugas Anda. Diperiksa di ConEmu build 120909.

>cmd -cur_console:n
cmd -cur_console:s1TVn
cmd -cur_console:s1THn
cmd -cur_console:s2THn

Ini sebuah contoh. Memisahkan di ConEmu mungkin serumit yang Anda inginkan, konfigurasi dengan proporsi apa pun dimungkinkan. Baca proyek wiki untuk informasi lebih lanjut tentang -new_consoledan -cur_consoleberalih.

Untuk menjalankan semua itu tanpa membuat Tugas baru

Ada /cmdlist ConEmu.exesaklar.

Contoh penggunaan untuk konten pintasan (di desktop, misalnya):

ConEmu -cmdlist cmd -cur_console:fn ||| cmd -cur_console:s1TVn ||| cmd -cur_console:s1THn ||| cmd -cur_console:s2THn

Perlu menjalankannya dari file cmd lain? Berikut ini consoles.cmdcontohnya:

start ConEmu -cmdlist cmd -cur_console:fn ^|^|^| cmd -cur_console:s1TVn ^|^|^| cmd -cur_console:s1THn ^|^|^| cmd -cur_console:s2THn

Bisakah Anda memberi tahu saya cara menjalankan perintah ini? Saya sudah mencoba dan inilah yang saya dapatkan. Saya memiliki bangunan terbaru.
arin

Kata kuncinya adalah "Tugas". Mengapa Anda mencoba menjalankan ini dari shell yang sudah mulai? Atur Tugas.
Maximus

@ Maximus saya mendapat kesan bahwa ini adalah perintah shell. Terima kasih.
arin

1
@arin Anda dapat menggunakan ini dari shell juga, tapi itu perlu -new_console: ... bukan -cur_console
Maximus

@ Maximus: Bagaimana sebenarnya ukuran jendela dikonfigurasi dalam contoh tugas itu? Sebagai contoh, saya ingin mengatur sesuatu seperti apa yang Anda posting di Twitter , di mana itu bukan kotak persegi. Adakah dokumentasi yang bisa Anda gunakan untuk merujuk saya?
Isxek

2

Saya datang dengan implementasi berikut. Saya menggunakannya untuk proyek pengembangan web. Konsol untuk pelari tugas (mis: gulp), git, kompiler javascript (mis: naskah), dll. Tujuannya adalah untuk membuka 4 jendela konsol dan mengubah direktori ke direktori tempat saya mengeksekusi * .cmd. Saya tidak ingin memiliki banyak salinan skrip batch jika saya harus mengubahnya. Saya tidak ingin shell menjadi batch dan saya ingin shell menjadi bash. Saya ada di windows, jadi, cygwin diperlukan untuk bash shell.

Saya membuat file .cmd bernama sewenang-wenang. Saya menelepon milik saya 4 consoles.cmd. Cygwin diinstal (versi 64bit dalam kasus saya). cherePaket Cygwin juga diinstal dan diperlukan.

4 consoles.cmd konten:

@echo off

for %%i in ("%~dp0..\..") DO (set dirVar=%%~ni)
for %%i in ("%~dp0.") DO (set dir2Var=%%~ni)

set finalValue=%dirVar% %dir2Var%

start C:\"Program Files"\ConEmu\ConEmu64.exe -cmdlist ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:fna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico" ^|^|^| ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:s1TVna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico" ^|^|^| ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:s1THna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico" ^|^|^| ^
C:\cygwin64\bin\bash -c "/bin/xhere /bin/bash.exe" -cur_console:s2THna:t:"%finalValue%":C:"C:\cygwin64\Cygwin.ico"

Saya memasukkan 4 consoles.cmdlayanan File hosting untuk keperluan cadangan jika hard drive saya crash. Juga untuk kenyamanan saat berbagi di antara mesin pengembangan.

Script batch akan mengubah direktori untuk semua 4 konsol windows ke direktori di mana .cmd ada. Jadi saya membuat Hard Symbolic link di direktori tempat saya ingin semua 4 konsol windows mengubah direktori. Tautan simbolik menunjuk kembali ke kanonik 4 consoles.cmd.

Jalankan tautan simbolik dan direktori kerja cangkang konsol 4 akan menjadi lokasi tautan simbolik pada sistem file

Kode pelari tugas teguk saya untuk siapa pun yang tertarik

package.json

{
  "name": "MyApp",
  "version": "1.0.0",
  "description": "",
  "main": "gulpfile.js",
  "private": true,
  "devDependencies": {
    "del": "^1.2.0",
    "gulp": "^3.9.0",
    "gulp-batch": "^1.0.5",
    "gulp-concat": "^2.5.2",
    "gulp-imagemin": "^2.2.1",
    "gulp-minify-css": "^1.1.6",
    "gulp-ng-annotate": "^1.0.0",
    "gulp-plumber": "^1.0.1",
    "gulp-rename": "^1.2.2",
    "gulp-sourcemaps": "^1.5.2",
    "gulp-uglify": "^1.2.0",
    "gulp-watch": "^4.2.4",
    "imagemin-pngquant": "^4.1.0"
  },
  "author": "Author",
  "license": "ISC"
}

bower.json

{
  "name": "MyProject",
  "version": "1",
  "license": "MIT",
  "private": true,
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components"
  ],
  "dependencies": {
    "bootstrap": "~3.3.4",
    "jquery": "~2.1.3",
    "angular": "~1.4.0",
    "angular-route": "~1.4.0",
    "angular-animate": "~1.4.0",
    "font-awesome": "~4.3.0",
    "underscore": "~1.8.3",
    "bootstrap-datepicker": "~1.4.0",
    "angularjs-toaster": "~0.4.12",
    "angular-scroll": "~0.7.0",
    "moment": "~2.10.2",
    "angular-loading-bar": "~0.7.1"
  }
}

gulpfile.js

'use strict';

var gulp = require('gulp');
var batch = require('gulp-batch');
var sourcemaps = require('gulp-sourcemaps');
var minifycss = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var concat = require('gulp-concat');
var del = require('del');
var plumber = require('gulp-plumber');
var watch = require('gulp-watch');
var imagemin = require('gulp-imagemin');
var pngquant = require('imagemin-pngquant');
var ngAnnotate = require('gulp-ng-annotate');

gulp.task('default', ['clean'], function () {
    gulp.start('images', 'vendorCss', 'applicationCss', 'fontIcons', 'vendorJavascript', 'applicationJavascript');
});

gulp.task('clean', function (cb) {
    del(['./dist/*'], cb);
});

gulp.task('images', function () {
    return gulp.src([
            './content/img/**/*'
    ])
        .pipe(imagemin({
            optimizationLevel: 3,
            progressive: true,
            interlaced: true,
            svgoPlugins: [{ removeViewBox: false }],
            use: [pngquant()]
        }))
        .pipe(gulp.dest('./dist/img'));
});

gulp.task('fontIcons', function () {
    return gulp.src([
        './bower_components/bootstrap/dist/fonts/**.*',
        './bower_components/font-awesome/fonts/**.*'
    ])
        .pipe(gulp.dest('./dist/fonts'));

});

gulp.task('vendorCss', function () {
    return gulp.src([
        './bower_components/bootstrap/dist/css/bootstrap.css',
        './bower_components/font-awesome/css/font-awesome.css',
        './bower_components/angularjs-toaster/toaster.css',
        './bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css',
        './bower_components/angular-loading-bar/build/loading-bar.css'
    ])
        .pipe(concat('vendor.css'))
        .pipe(gulp.dest('./dist/css'))
        .pipe(rename({ suffix: '.min' }))
        .pipe(minifycss())
        .pipe(gulp.dest('./dist/css'));
});

gulp.task('vendorJavascript', function () {
    return gulp.src([
            './bower_components/jquery/dist/jquery.js',
            './bower_components/angular/angular.js',
            './bower_components/angular-route/angular-route.js',
            './bower_components/angular-resource/angular-resource.js',
            './bower_components/angular-animate/angular-animate.js',
            './bower_components/angular-scroll/angular-scroll.js',
            './bower_components/angular-loading-bar/build/loading-bar.js',
            './bower_components/angularjs-toaster/toaster.js',
            './bower_components/bootstrap/dist/js/bootstrap.js',
            './bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.js',
            './bower_components/underscore/underscore.js',
            './bower_components/moment/moment.js'
    ])
        .pipe(sourcemaps.init())
        .pipe(concat('vendor.js'))
        .pipe(gulp.dest('./dist/script'))
        .pipe(uglify())
        .pipe(rename('vendor.min.js'))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('./dist/script'));
});

gulp.task('applicationCss', function () {
    return gulp.src([
            './content/css/site.css',
            './content/css/animation.css'
    ])
        .pipe(plumber())
        .pipe(concat('app.css'))
        .pipe(gulp.dest('./dist/css'))
        .pipe(rename({ suffix: '.min' }))
        .pipe(minifycss())
        .pipe(gulp.dest('./dist/css'));
});

gulp.task('applicationJavascript', function () {
    return gulp.src([
            './angular/**/*.js'
    ])
        .pipe(plumber())
        .pipe(ngAnnotate())
        .pipe(sourcemaps.init())
        .pipe(concat('app.js'))
        .pipe(gulp.dest('./dist/script'))
        .pipe(uglify())
        .pipe(rename('app.min.js'))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('./dist/script'));

});

gulp.task('watchApplicationJavascript', ['applicationJavascript'], function () {
    watch('./angular/**/*.js', batch(function (events, done) {
        gulp.start('applicationJavascript', done);
    }));
});

gulp.task('watchApplicationCss', ['applicationCss'], function () {
    watch(['./content/css/site.css', './content/css/animation.css'], batch(function (events, done) {
        gulp.start('applicationCss', done);
    }));
});
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.