Conemu: ฉันจะสร้างหน้าต่างคอนโซลหลายบานในหนึ่งแท็บจากไฟล์งานได้อย่างไร


29

วิธีทำให้หลายคอนโซล windows ในหนึ่งแท็บจากไฟล์งาน? ฉันต้องการสร้างกริด 2 × 2 ของคอนโซลในหนึ่งแท็บ ฉันสามารถทำได้ด้วยตัวเองเมื่อสร้างคอนโซลใหม่และเลือกตัวเลือก "ทางขวา" หรือ "ถึงด้านล่าง" แต่ฉันต้องการที่จะสร้างขึ้นโดยอัตโนมัติเมื่อเริ่มต้นขึ้น ตัวเลือก "บันทึกอัตโนมัติ / เรียกคืนงานที่เปิด" ไม่สามารถใช้งานได้ด้วยเหตุผลบางประการ ดังนั้นวิธีเดียวคือการสร้างมันในงาน ดังนั้นฉันจะสร้างตาราง 2 × 2 ในงานได้อย่างไร

คำตอบ:


44

นี่คือเนื้อหางานของคุณ ตรวจสอบใน ConEmu build 120909

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

นี่คือตัวอย่าง การแยกใน ConEmu อาจมีความซับซ้อนเท่าที่คุณต้องการ อ่านโครงการwikiสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ-new_consoleและ-cur_consoleสวิตช์

เมื่อต้องการเรียกใช้ทั้งหมดนั้นโดยไม่ต้องสร้างงานใหม่

มี/cmdlist ConEmu.exeสวิตช์

ตัวอย่างการใช้งานสำหรับเนื้อหาทางลัด (บนเดสก์ท็อปเป็นต้น):

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

ต้องการเรียกใช้จากไฟล์ cmd อื่นหรือไม่ นี่คือconsoles.cmdตัวอย่าง:

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

คุณสามารถบอกวิธีใช้คำสั่งนี้ได้ไหม ฉันได้ลองแล้วและนี่คือสิ่งที่ฉันได้รับ ฉันมีงานสร้างล่าสุด
arin

คำสำคัญคือ "งาน" ทำไมคุณพยายามเรียกใช้จากเชลล์เริ่มต้นแล้ว? งานติดตั้ง
Maximus

@ Maximus ฉันรู้สึกว่านี่เป็นคำสั่งเชลล์ ขอบคุณ
arin

1
@arin คุณสามารถใช้สิ่งนี้จากเชลล์ได้เช่นกัน แต่ต้องมี -new_console: ... แทนที่จะเป็น -cur_console
Maximus

@ Maximus: ขนาดของหน้าต่างที่ถูกกำหนดค่าในตัวอย่างงานนั้นเป็นอย่างไร? ตัวอย่างเช่นฉันต้องการตั้งค่าบางอย่างเช่นสิ่งที่คุณโพสต์บน Twitterซึ่งไม่ใช่กริดสแควร์ มีเอกสารที่คุณสามารถอ้างอิงถึงฉันได้ไหม?
Isxek

2

ฉันมาด้วยการดำเนินการดังต่อไปนี้ ฉันใช้มันสำหรับโครงการพัฒนาเว็บไซต์ คอนโซลสำหรับนักวิ่งงาน (เช่น gulp), คอมไพล์, คอมไพเลอร์ javascript (เช่น: typescript) ฯลฯ เป้าหมายคือการเปิดหน้าต่างคอนโซล 4 บานและเปลี่ยนไดเรกทอรีเป็นไดเรกทอรีที่ฉันใช้งาน * .cmd ฉันไม่ต้องการมีแบตช์สคริปต์หลายชุดในกรณีที่ฉันต้องเปลี่ยน ฉันไม่ต้องการให้เชลล์เป็นชุดและฉันต้องการให้เชลล์ทุบตี ฉันอยู่บน windows ดังนั้น cygwin จำเป็นสำหรับ bash shell

ฉันสร้างไฟล์. cmd ที่ชื่อตามอำเภอใจ 4 consoles.cmdผมเรียกว่าเหมือง Cygwin ได้รับการติดตั้งแล้ว (เวอร์ชั่น 64 บิตในกรณีของฉัน) รวมถึงchereแพ็คเกจCygwin ที่ติดตั้งและจำเป็นต้องใช้

4 consoles.cmd เนื้อหา:

@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"

ฉันใส่4 consoles.cmdในบริการไฟล์โฮสติ้งเพื่อสำรองใส่หีบล่มรฟ์ของฉันยาก นอกจากนี้เพื่อความสะดวกสบายบางอย่างเมื่อใช้ร่วมกันระหว่างเครื่องพัฒนา

สคริปต์ชุดงานจะเปลี่ยนไดเรกทอรีสำหรับหน้าต่างคอนโซลทั้ง 4 ตัวเป็นไดเรกทอรีที่มี. cmd อยู่ ดังนั้นฉันจึงสร้างลิงก์สัญลักษณ์ยาก ในไดเรกทอรีที่ฉันต้องการให้ windows console ทั้ง 4 เปลี่ยนไดเรกทอรี เชื่อมโยงสัญลักษณ์จุดกลับไปยอมรับ4 consoles.cmd

รันลิงก์สัญลักษณ์และไดเร็กทอรีคอนโซลการทำงาน 4 เชลล์จะเป็นตำแหน่งที่ลิงก์สัญลักษณ์อยู่บนระบบไฟล์

รหัสนักวิ่งงานอึกของฉันสำหรับทุกคนที่สนใจ

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);
    }));
});
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.