হেডার রাখার সময় কীভাবে বড় ডেটা ফাইলটি স্ক্রোল করবেন


19

ধরুন আমার কাছে কিছু বড় ডেটা ফাইল রয়েছে যা উল্লম্ব এবং অনুভূমিক উভয় দিকেই স্ক্রিনকে উপচে ফেলেছে। শিরোনাম-লাইনগুলি স্ক্রিনে থাকা অবস্থায় আমি কীভাবে এই ফাইলটিকে ব্রাউজ করতে পারি?

এই মুহুর্তের জন্য, আমি ব্যবহার করছি less -S, যাতে আমি আমার ফাইলটি অনুভূমিকভাবে এবং উল্লম্বভাবে সুন্দরভাবে স্ক্রোল করতে পারি। তবে স্ক্রোল ডাউন করার সময় শিরোনামের লাইনগুলি স্পষ্টতই অদৃশ্য হয়ে যায়। এগুলিকে কম ব্যবহার করার কোনও উপায় আছে কি?

একটি বিকল্প এর vimসাথে স্প্লিট-স্ক্রিন মোডে ব্যবহার করা হচ্ছে :set nowrap। তবে, এখন যদি আমি অনুভূমিকভাবে স্ক্রোল করি তবে উপরের উইন্ডোটি একইভাবে স্ক্রোল করে না ( :windo set scrollbindকেবলমাত্র আমি জানি যতক্ষণ উল্লম্ব স্ক্রোলিংয়ের জন্য কাজ করে)।


ডেটা স্ক্রোল করে রাখার সময় শিরোনাম বলতে কী বোঝায়? আপনি কি বোঝাতে চাইছেন যে আপনি কলামের নামগুলির সাথে প্রথম লাইনটি একই রাখছেন? এটি কি ডেটাযুক্ত একটি ফাইল এবং এই ডেটা কি পরিবর্তন করে চলেছে এবং তাই আপনি কেবল পরিবর্তিত সারিগুলি দেখতে চান? আপনি কি কেবল প্রথম এন সারি বা শেষ এন সারিগুলি দেখতে চান?
পোলিম

2
@ পলিম: lessবা tail -fযেগুলি তারা স্বাভাবিকভাবে ঠিক ঠিক তেমন আচরণ করে, তা ছাড়া স্ক্রিনে প্রদর্শিত প্রথম লাইন সর্বদা শিরোনাম লাইন হবে। একটি স্থির শিরোনামযুক্ত তবে স্ক্রোলিং বডি সহ ওয়েবসাইটগুলি (বা এক্সেল) পছন্দ করুন।
মাদুর

@ পলিম ^ যা-ই হোক না কেন!
দেবানজান বসু

@ পলিম, কীভাবে আপনি একটি স্প্রেডশীটে একটি অনুভূমিক এবং উল্লম্ব দর্শন স্থির করতে পারেন তা ভেবে দেখুন। স্ক্রোল করার সময় কলামগুলি হিমায়িত স্থানে রয়েছে।
ব্যবহারকারী 208145

উত্তর:


11

আপনি যদি ভিমের সাথে পরিচিত হন তবে এটি সম্ভবত আপনার পক্ষে সেরা বিকল্প। আপনি কেবল পরিবর্তন করে অনুভূমিক-স্ক্রোল-বাইন্ডকে সক্ষম করতে পারেন 'scrollopt':

set scrollopt=hor

সুতরাং vim -u NONE, আপনি এর সাথে পছন্দসই আচরণ পান:

:set scrollopt=hor
:set nowrap
:1split
:windo set scrollbind

আপনি সামঞ্জস্য করতে 'sidescroll'এবং 'sidescrolloff'যথাক্রমে কতগুলি কলামগুলি এড়িয়ে গেছে এবং প্রান্ত থেকে আসা কতটা দূরে শুরু হয় তা পরিবর্তন করতে পারেন ।


1
কম দিয়ে এটি করার কোনও উপায় আছে? বিশেষত যখন প্রচুর ডেটাফাইলে (স্মৃতিতে লোড করা খুব বড়) এর মাধ্যমে স্ক্রোল করা হয়?
এনএম

@ এনএম: অন্যান্য উত্তরগুলি দেখুন
থোর

আমি এটি চেষ্টা করেছিলাম এবং যখন আমি নীচের উইন্ডোটি নীচে স্ক্রোল করি তবে উপরের উইন্ডোটিও নীচে স্ক্রল করে যায়
ড্যানিয়েল সেরোদিও ২

@ ড্যানিয়েলসেরোদিও: মনে হচ্ছে কিছু পরিবর্তন হয়েছে। আপনি যদি স্ক্রোলপট সেট করে থাকেন তবে এটি কাজ করে hor, আপডেট হওয়া উত্তরটি দেখুন
থোর

আপডেট হওয়া উত্তরটি প্রত্যাশার মতো কাজ করে, বজ্রপাতের দ্রুত জবাবের জন্য ধন্যবাদ :)
ড্যানিয়েল সেরোদিও ২

17

টার্মিনালগুলিতে যা স্ক্রোলিং অঞ্চল সেট করতে সহায়তা করে:

tailf() ( # args: <file> [<number-of-header-lines>]
  trap 'tput csr 0 "$((LINES-1))"' INT
  tput csr "$((1+${2-1}))" "$((LINES-1))"
  tput clear
  {
    head -n"${2-1}"
    printf "%${COLUMNS}s\n" "" | tr ' ' =
    tail -n "$((LINES-1-${2-1}))" -f
  } < "$1"
)

(মত একটি শেল অনুমান zshবা bashযে সেট $COLUMNSএবং $LINESভেরিয়েবল টার্মিনাল আকারের উপর ভিত্তি করে)।


1
শহরবাসী! এটাই ধার্মিক! দুঃখিত, নিজেকে নিয়ন্ত্রণ করতে পারিনি। নিম্নলিখিত ফাংশনগুলি বাস্তবায়নের জন্য আপনি কি আমাকে ওয়েবপৃষ্ঠাগুলি বা কমান্ড বা ভেরিয়েবলগুলিতে পরিচালনা করতে পারেন?
দেবানজন বসু

1. দিয়ে প্রস্থান করুন q 2. দিয়ে upএবং downকীগুলি দিয়ে স্ক্রল করুন
দেবাঞ্জন বসু

প্রতিটি বার lessব্যবহার না করে headএবং tailপর্দা পুনরায় আঁকানো ছাড়া নিজেই পিগিব্যাক করা সম্ভব ? আমি এখনও আপনার সমাধান বিটিডব্লিউ <3। আমি এখনও এটি সঠিক হিসাবে চিহ্নিত করছি না কারণ আপনি মনে করছেন এটি সম্পাদনা করছেন এবং আমি চাই না যে আপনি আত্মতুষ্ট হন; আত্মতৃপ্তি একটি সৃজনশীলতা-হত্যাকারী, আমাকে বলা হয়! :)
দেবানজান বসু

@ দেবাঞ্জনবাসু আপনি উপরের less -Xজায়গায় ব্যবহার করতে পারেন tail -n ...তবে "আপ" কীটি সেখানে শিরোলেখটিকে মুছে দেয়।
স্টাফেন চেজেলাস

আমি যেমন বলেছি, আপনার যদি আরও ভাল ধারণা থাকে তবে আমাকে কেবল এটিই নির্দেশ করুন, বা আরও ভাল করে দয়া করে আপনার উত্তরটি আরও টুইঙ্ক করুন। আমি এটা সঠিক চিহ্নিত করতে কারণ আপনার ছিল করেছি প্রশ্ন যে আমি প্রথমে জিজ্ঞাসা উত্তর। lessশিরোনাম এবং পাদলেখের মধ্যে একটি পরিবেশ স্যান্ডউইচড করা, এটি আরও সাধারণ সরঞ্জাম হিসাবে তৈরি করার ধারণা।
দেবানজন বসু

6

এটি চেষ্টা করুন (আপনার ইনস্টল করতে হবে multitail):

multitail -du -t "$(head -n 1 filename)" filename

বা, এক লাইনের চেয়ে বেশি শিরোনামের জন্য:

multitail -wh 2 -l "head -n 2 filename" filename

আপনি যদি কোনও ফাইলের পরিবর্তে কমান্ড আউটপুট অনুসরণ করতে চান:

multitail -wh 2 -l "command | head -n 2" -l command

বা -tযথাযথ হিসাবে ব্যবহার করুন । নোট করুন যে আপনার ব্যবহারের প্রয়োজন হতে পারে unbufferযাতে আপনার আদেশের আউটপুটটি তত্ক্ষণাত উপস্থিত হয়।

আপনি ফর্মগুলির -Dজন্য স্থিতি রেখার প্রদর্শনটি অক্ষম করতে ব্যবহার করতে পারেন -wh(এটি ফর্মের উদ্দেশ্যকে পরাস্ত করবে -t)।


2

থোরের উত্তরে উল্লম্ব "স্ক্রোলোপ্ট" অক্ষম করার কথা উল্লেখ করা হয়নি, যা উভয় উইন্ডোকে উল্লম্বভাবে স্ক্রোল করে তোলে। সুতরাং আমার জন্য সম্পূর্ণ সমাধানটি ভিমে এঁকে দিচ্ছে:

:set scrollopt+=hor
:set scrollopt-=ver
:set nowrap
:1split
:windo set scrollbind

আপনি আপনার পছন্দগুলির উপর নির্ভর করে scrolloptসরাসরি :scrollopt=horবা এর সাথে সেট করতে পারেন :scrollopt=hor,jumpএখানে জন্য VimDocscrollopt
মাইকেল

1

এটি যতদূর আমি পেয়েছি tmux:

#!/bin/bash

tmux new-session -s main -n 'w1' -d
tmux send-keys -t main:w1.0 "tail -f <(head -n1 $1)" C-j
tmux split-window -v
tmux resize-pane -t 0 -y 2
tmux send-keys -t 1 "tail -n+2 $1|less -S" C-j
tmux attach -t main

এটি উইন্ডো বিভক্ত করার জন্য ব্যবহারকারীর 80519 এর উত্তরের একটি বর্ধিতাংশ tmux। হিসাবে সংরক্ষণ করুন hless.sh, এটি কার্যকর করা এবং এটি পছন্দ মতো ব্যবহার করুন

hless.sh file
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.